Referencias Bibliográficas: [Herlihy et al., 2020]
Temas
- Una o más de las siguientes propiedades y extensiones:
- Propiedades de progreso incluyendo libre de bloqueo (lock-free), libre de espera (wait-free), equidad (fairness), planificación por prioridad, interacciones con consistencia, confiabilidad.
- Rendimiento con respecto a contención, granularidad, convoy, escalabilidad.
- Estructuras de datos y algoritmos no bloqueantes.
- Propiedad y control de recursos.
- 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.
- Control basado en transacciones: Optimista y conservador.
- Bloqueo distribuido: confiabilidad.
- 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.
- Especulación, selección, cancelación; consecuencias en observabilidad y seguridad.
- Control de recursos usando semáforos y variables de condición.
- Flujo de control: Planificación de computaciones, bucles serie-paralelo con líderes (posiblemente elegidos), tuberías y flujos, paralelismo anidado.
- Excepciones y fallos. Manejadores, detección, tiempos de espera, tolerancia a fallos, votación.
Aprendizaje esperado (Learning Outcomes)
- Escribir un programa que busque especulativamente una solución mediante múltiples actividades, terminando las demás cuando se encuentre una [Escribir]
- 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]
- 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