Referencias Bibliográficas: [,,,]
Temas
- Memoria Compartida.
- La consistencia, y su papel en los lenguaje de programación garantias para los programas de carrera libre.
- Pasos de Mensaje:
- Mensajes Punto a Punto versus multicast (o basados en eventos)
- Estilos para enviar y recibir mensajes Blocking vs non-blocking
- Buffering de mensajes
- Atomicidad:
- Especificar y probar atomicidad y requerimientos de seguridad
- Granularidad de accesos atómicos y actualizaciones, y uso de estructuras como secciones críticas o transacciones para describirlas
- Exclusión mutua usando bloques, semáforos, monitores o estructuras relacionadas
- Potencial para fallas y bloqueos (deadlock) (causas, condiciones, prevención)
- Composición
- Componiendo acciones atómicas granulares más grandes usando sincronización
- Transacciones, incluyendo enfoques optimistas y conservadores
- Consensos:
- (Ciclicos) barerras, contadores y estructuras relacionadas
- Acciones condicionales:
- Espera condicional (p.e., empleando variables de condición)
Objetivos de Aprendizaje
- Usar exclusión mútua para evitar una condición de carrera [Usar]
- 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]
- Dar un ejemplo de un escenario en el que el bloqueo de mensajes enviados pueden dar deadlock [Usar]
- Explicar cuándo y por qué mensajes de multidifusión (multicast) o basado en eventos puede ser preferible a otras alternativas [Familiarizarse]
- Escribir un programa que termine correctamente cuando todo el conjunto de procesos concurrentes hayan sido completados [Usar]
- Dar un ejemplo de un escenario en el que un intento optimista de actualización puede nunca completarse [Familiarizarse]
- 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