5.45.4.12 Coordinación: Propiedades Avanzadas (4 horas) [Habilidades AG-C09,AG-C11]

Referencias Bibliográficas: [Herlihy et al., 2020]

Temas

  1. Una o más de las siguientes propiedades y extensiones:
    1. Propiedades de progreso incluyendo libre de bloqueo (lock-free), libre de espera (wait-free), equidad (fairness), planificación por prioridad, interacciones con consistencia, confiabilidad.
    2. Rendimiento con respecto a contención, granularidad, convoy, escalabilidad.
    3. Estructuras de datos y algoritmos no bloqueantes.
    4. Propiedad y control de recursos.
    5. Variantes y alternativas de bloqueos: bloqueos de secuencia, bloqueos de lectura-escritura; Actualizar-Copiando-Lectura (RCU), reentrada; tickets; control del ciclo activo (spinning) versus bloqueo.
    6. Control basado en transacciones: Optimista y conservador.
    7. Bloqueo distribuido: confiabilidad.
    8. Alternativas a barreras: Relojes; contadores, relojes virtuales; flujo de datos y continuaciones; futuros y RPC; basadas en consenso, recolección de resultados con reductores y colectores.
    9. Especulación, selección, cancelación; consecuencias en observabilidad y seguridad.
    10. Control de recursos usando semáforos y variables de condición.
    11. Flujo de control: Planificación de computaciones, bucles serie-paralelo con líderes (posiblemente elegidos), tuberías y flujos, paralelismo anidado.
    12. Excepciones y fallos. Manejadores, detección, tiempos de espera, tolerancia a fallos, votación.

Aprendizaje esperado (Learning Outcomes)

  1. Escribir un programa que busque especulativamente una solución mediante múltiples actividades, terminando las demás cuando se encuentre una [Escribir]
  2. Escribir un programa en el que una excepción numérica (como división por cero) en una actividad cause la terminación de las demás [Escribir]
  3. Escribir un programa para que múltiples partes acuerden la hora actual del día; discutir sus limitaciones en comparación con protocolos como el protocolo de transferencia de red (NTP) [Escribir]

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