Programación concurrente
Programa
- Introducción a la concurrencia
- Presentación y motivación de la concurrencia:
- Procesos y concurrencia necesaria.
- Propiedades de ordenación temporal:
- Exclusión mutua.
- Sincronización condicional.
- Propiedades de los programas concurrentes:
- Seguridad.
- Vivacidad
- Prioridad.
- Grafos de procesos y recursos.
- Presentación y motivación de la concurrencia:
- Mecanismos de bajo nivel
- Arranque de tareas
- Mecanismos básicos de sincronización
- Algoritmos de exclusión mutua: virtudes y defectos
- Semáforos
- Problemas de falta de estructuración
- Especificación
- Esbozo de un método de desarrollo.
- Recursos compartidos como paradigma unificador.
- Notación de TADs concurrentes para especificación de recursos compartidos.
- Programación de recursos compartidos mediante objetos
protegidos.
- Esquema de un objeto protegido
- Traducción directa de precondiciones a guardas
- Dependencia de parámetros de entrada:
- Entries especializadas
- Familias de entries indexadas por parámetros de entrada
- Familias de entries indexadas por identificadores de procesos
- Cuestiones de vivacidad y su resolución
- Concurrencia mediante paso de mensajes / Rendez
Vous
- Sistemas distribuidos.
- Canales y paso de mensajes síncrono y asíncrono.
- Recepción alternativa no determinista mediante canales.
- Implementación de recursos con paso de mensajes síncrono:
- Recursos activos.
- Estructura de un recurso activo.
- Implementación de operaciones independientes de parámetros de entrada.
- Operaciones dependientes de parámetros de entrada: canales.
- Encapsulamiento
- Problemas con exclusión parcial
- Ejemplos de problemas
- Recursos monitores. Esquema genérico de desdoblamiento de operaciones.
- Lectores y escritores. Análisis de vivacidad.
- Análisis y diseño de sistemas concurrentes
- Análisis y especificación. Identificación de:
- Procesos.
- Recursos.
- Propiedades de vivacidad y seguridad.
- Diseño de la arquitectura del programa.
- Diseño detallado e implementación.
- Ejemplos de análisis y diseño.
- Análisis y especificación. Identificación de:
- Introducción a la concurrencia