Skip to main content

Módulo 3: Concurrencia

1. Concurrencia

¿Te has preguntado cómo una aplicación de procesamiento de texto (Open Office, Word, etc.) puede recibir información por el teclado y de manera simultánea verificar la gramática y ortografía de lo que escribes? La concurrencia es una característica esencial en las aplicaciones modernas, genera múltiples beneficios, pero también grandes desafíos a los programadores. Esta semana descubrirás cómo hace el sistema operativo para soportar la concurrencia y explorarás algunos de los desafíos en su implementación.

Clase 12 - Concurrencia

Material de apoyo

Presentaciones

Texto guia

  • Capítulo 25: Part II - Concurrency [link]
  • Capítulo 26: Concurrency: An Introduction [link]

Código

  • Código - cápitulo 26 [repo]
  • Capítulo 27: Interlude: Thread API [link]
  • Código - cápitulo 27 [repo]

2. Locks

El problema de las condiciones de carrera es un verdadero dolor de cabeza en el desarrollo de software. Esta semana vamos a explorar una de las técnicas mas importantes para darle solución a este problema, los Locks.

Clase 13 - Locks

Material de apoyo

Presentaciones

Texto guia

Código

  • Código - cápitulo 28 [repo]

Clase 14 - Estructuras de datos basadas en Locks

Material de apoyo

Presentaciones

Texto guia

  • Capítulo 29: Lock-based Concurrent Data Structures [link]

3. Variables de Condición y Semáforos

Esta semana vamos a conocer otras dos técnicas para solucionar los problemas de la concurrencia: Variables de Condición y Semáforos.

Clase 15 - Variables de condición y semaforos

Material de apoyo

Presentaciones

Texto guia

  • Capítulo 30: Condition Variables [link]

Código

  • Código - cápitulo 30 [repo]

Clase 16 - Semáforos

Material de apoyo

Presentaciones

Texto guia

  • Capítulo 31: Semaphores [link]

Código

  • Código - cápitulo 31 [repo]

4. Problemas de concurrencia

Esta semana vamos a conocer otras dos técnicas para solucionar los problemas de la concurrencia: Variables de Condición y Semáforos.

Clase 17 - Problemas de concurrencia

Material de apoyo

Presentaciones

Texto guia

  • Capítulo 32: Common Concurrency Problems [link]