Salta al contenido principal
Panel lateral
EN ABIERTO
Página Principal
Cursos
Contacto
MOOC UPM
::::: INICIAR SESIÓN :::::
Más
En este momento está usando el acceso para invitados
Acceder
Página Principal
Cursos
Contacto
Colapsar
Expandir
MOOC UPM
::::: INICIAR SESIÓN :::::
Abrir índice del curso
Programación concurrente
Diagrama de temas
General
Avisos
Foro
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.
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.