5.52.2.4 Comunicación y coordinación (18 horas) [Habilidades ]

Referencias Bibliográficas: [Pacheco, 2011,Matloff, 2014,Quinn, 2003] Temas
  1. Memoria Compartida.
  2. La consistencia, y su papel en los lenguaje de programación garantias para los programas de carrera libre.
  3. Pasos de Mensaje:
    1. Mensajes Punto a Punto versus multicast (o basados en eventos)
    2. Estilos para enviar y recibir mensajes Blocking vs non-blocking
    3. Buffering de mensajes
  4. Atomicidad:
    1. Especificar y probar atomicidad y requerimientos de seguridad
    2. Granularidad de accesos atómicos y actualizaciones, y uso de estructuras como secciones críticas o transacciones para describirlas
    3. Exclusión mutua usando bloques, semáforos, monitores o estructuras relacionadas
      1. Potencial para fallas y bloqueos (deadlock) (causas, condiciones, prevención)
    4. Composición
      1. Componiendo acciones atómicas granulares más grandes usando sincronización
      2. Transacciones, incluyendo enfoques optimistas y conservadores
  5. Consensos:
    1. (Ciclicos) barerras, contadores y estructuras relacionadas
  6. Acciones condicionales:
    1. Espera condicional (p.e., empleando variables de condición)

Objetivos de Aprendizaje

  1. Usar exclusión mútua para evitar una condición de carrera [Usar]
  2. Dar un ejemplo de una ordenación de accesos entre actividades concurrentes (por ejemplo, un programa con condición de carrera) que no son secuencialmente consistentes [Familiarizarse]
  3. Dar un ejemplo de un escenario en el que el bloqueo de mensajes enviados pueden dar deadlock [Usar]
  4. Explicar cuándo y por qué mensajes de multidifusión (multicast) o basado en eventos puede ser preferible a otras alternativas [Familiarizarse]
  5. Escribir un programa que termine correctamente cuando todo el conjunto de procesos concurrentes hayan sido completados [Usar]
  6. Dar un ejemplo de una ordenación de accesos entre actividades concurrentes (por ejemplo, un programa con condición de carrera) que no son secuencialmente consistentes [Familiarizarse]
  7. Usar semaforos o variables de condición para bloquear hebras hasta una necesaria precondición de mantenga [Usar]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM