Perfilado de sección

      1. Introducción a la concurrencia
        1. Presentación y motivación de la concurrencia:
          • Procesos y concurrencia necesaria.
        2. Propiedades de ordenación temporal:
          • Exclusión mutua.
          • Sincronización condicional.
        3. Propiedades de los programas concurrentes:
          • Seguridad.
          • Vivacidad
          • Prioridad.
        4. Grafos de procesos y recursos.

         

      2. Mecanismos de bajo nivel
        1. Arranque de tareas
        2. Mecanismos básicos de sincronización
          • Algoritmos de exclusión mutua: virtudes y defectos
          • Semáforos
        3. Problemas de falta de estructuración

         

      3. Especificación
        1. Esbozo de un método de desarrollo.
        2. Recursos compartidos como paradigma unificador.
        3. Notación de TADs concurrentes para especificación de recursos compartidos.

         

      4. Programación de recursos compartidos mediante objetos protegidos.
        1. Esquema de un objeto protegido
        2. Traducción directa de precondiciones a guardas
        3. Dependencia de parámetros de entrada:
          1. Entries especializadas
          2. Familias de entries indexadas por parámetros de entrada
          3. Familias de entries indexadas por identificadores de procesos
        4. Cuestiones de vivacidad y su resolución

         

      5. Concurrencia mediante paso de mensajes / Rendez Vous
        1. Sistemas distribuidos.
        2. Canales y paso de mensajes síncrono y asíncrono.
        3. Recepción alternativa no determinista mediante canales.
        4. Implementación de recursos con paso de mensajes síncrono:
          1. Recursos activos.
          2. Estructura de un recurso activo.
          3. Implementación de operaciones independientes de parámetros de entrada.
          4. Operaciones dependientes de parámetros de entrada: canales.
          5. Encapsulamiento

         

      6. Problemas con exclusión parcial
        1. Ejemplos de problemas
        2. Recursos monitores. Esquema genérico de desdoblamiento de operaciones.
        3. Lectores y escritores. Análisis de vivacidad.

         

      7. Análisis y diseño de sistemas concurrentes
        1. Análisis y especificación. Identificación de:
          • Procesos.
          • Recursos.
          • Propiedades de vivacidad y seguridad.
        2. Diseño de la arquitectura del programa.
        3. Diseño detallado e implementación.
        4. Ejemplos de análisis y diseño.