← Concurrencia y Sincronización Bloque 10 · Integración y cierre · Tema 47 de 47

Tema 47

Cierre y puente al próximo curso

Has llegado al final del curso de Concurrencia y Sincronización. En 47 temas has pasado de ver un contador que pierde incrementos a diseñar programas concurrentes correctos y libres de interbloqueos. En este tema final, resumimos lo que has aprendido, qué dominas ahora y cómo continúa en el próximo curso: Gestión de Memoria.

1. Resumen por bloques

BloqueTemasLo que aprendiste
1. El problema de la concurrencia1-5Concurrencia vs. paralelismo, hilos que comparten datos, condiciones de carrera, counter++, simulador de intercalados.
2. La sección crítica6-10Sección crítica, exclusión mutua, requisitos, primeros intentos fallidos, Peterson, simulador de exclusión mutua.
3. Operaciones atómicas11-14stdatomic.h, test-and-set, compare-and-swap, spinlocks, orden de memoria y visibilidad.
4. Mutex15-19Mutex en pthreads, granularidad, errores comunes, seguridad y reentrancia, detectar carreras.
5. Semáforos20-24Semáforos (wait/post), POSIX, señalización, barreras, simulador de semáforos.
6. Variables de condición y monitores25-28Variables de condición, despertares espurios, monitores, implementar monitor en C.
7. Problemas clásicos29-34Productor-consumidor (semáforos y condición), lectores-escritores, pthread_rwlock, filósofos, simulador de problemas clásicos.
8. Interbloqueos35-41Deadlock, grafos de asignación, prevención, evasión (banquero), detección, livelock/inanición/inversión, simulador de banquero.
9. Más allá de los candados42-44Futex, estructuras lock-free, otros modelos (mensajes, canales, actores).
10. Integración y cierre45-47Pool de hilos, transferencias bancarias, cierre.

2. Qué dominas ahora

Al terminar este curso, dominas:

3. Habilidades adquiridas

4. Conceptos clave

Los conceptos fundamentales del curso son:

5. Próximos pasos

Después de este curso, puedes:

6. Puente al próximo curso

El próximo curso es Gestión de Memoria. En este curso estudiaste cómo coordinar hilos que comparten datos. En el próximo, estudiarás cómo el sistema administra la memoria que todos ellos usan.

Los temas del próximo curso incluyen:

La concurrencia y la gestión de memoria son complementarias: los hilos comparten memoria, y el sistema gestiona esa memoria para que todos puedan usarla de forma eficiente.

De la sincronización a la memoria

En este curso viste cómo coordinar hilos que comparten datos. En el próximo, verás cómo el sistema gestiona la memoria que esos hilos comparten. La memoria es el recurso que todos los hilos usan, y su gestión es fundamental para el rendimiento y la corrección.

7. Resumen

8. Preguntas de repaso

Intenta responder cada una antes de abrir la respuesta.

1. ¿Cuántos temas tiene el curso?

47 temas en 10 bloques.

2. ¿Qué es una condición de carrera?

Un error que ocurre cuando el resultado depende del intercalado de hilos que acceden a un dato compartido.

3. ¿Qué es la exclusión mutua?

La garantía de que solo un hilo ejecuta la sección crítica a la vez.

4. ¿Qué son los tres requisitos de una solución correcta?

Exclusión mutua, progreso y espera acotada.

5. ¿Qué es un mutex?

Un candado que bloquea al hilo si está ocupado.

6. ¿Qué es un semáforo?

Un contador de permisos con wait y post.

7. ¿Qué es un interbloqueo?

Dos o más hilos que se esperan mutuamente para siempre.

8. ¿Qué es la herencia de prioridad?

El hilo que tiene el recurso hereda la prioridad del hilo bloqueado.

9. ¿Qué es un futex?

Fast userspace mutex: una primitiva que hace el trabajo en espacio de usuario.

10. ¿Cuál es el próximo curso?

Gestión de Memoria.