4.41.2.4 Comunicación y coordinación (18 horas) [Habilidades a,b]

Referencias Bibliográficas: [,,,] 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 [Usage]
  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 [Familiarity]
  3. Dar un ejemplo de un escenario en el que el bloqueo de mensajes enviados pueden dar deadlock [Usage]
  4. Explicar cuándo y por qué mensajes de multidifusión (multicast) o basado en eventos puede ser preferible a otras alternativas [Familiarity]
  5. Escribir un programa que termine correctamente cuando todo el conjunto de procesos concurrentes hayan sido completados [Usage]
  6. Dar un ejemplo de un escenario en el que un intento optimista de actualización puede nunca completarse [Familiarity]
  7. Usar semaforos o variables de condición para bloquear hebras hasta una necesaria precondición de mantenga [Usage]

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