TEMARIO

- Pincha en los enlaces para tener acceso a una información más completa sobre el contenido de cada uno de los temas del curso

 Tema 1. Introducción a la PC.

- - Introducción histórica a la PC y sus lenguajes de programación. Concepto de concurrencia.
- Clasificación de las interacciones entre los procesos de un programa.
- El modelo abstracto.
- Objetivos de la asignatura.

 Tema 2.EL problema de la exclusión mutua

- Introducción al problema. Condiciones de Dijkstra.
- Algoritmo de Dekker. Verificación de sus propiedades. Equidad de la ejecución de los procesos.
- Generalización a N procesos. Algoritmos de Knuth y Peterson. Verificación de propiedades.
- El problema en un entorno distribuido. Algoritmos de Ricart-Aggrawala, Suzuki-Kasami. Verificación.

 Tema 3. Regiones críticas y monitores

- Verificación axiomática de programas.

- Notación y semántica de las regiones críticas de los lenguajes.

- Reglas de inferencia.

- Implementación: algoritmo de Rem.

-Lenguajes concurrentes con monitores.

- Mecanismos alternativos de señales con monitores.

- Verificación y equivalencia de las operaciones de sincronización.

- Implementación en lenguajes de programación concurrentes.

 Tema 4. Sistemas basados en paso de mensajes

- Introducción a la programación distribuida.

- Introducción a los mecanismos de paso de mensajes en los lenguajes de programación concurrentes.

- El modelo de programación distribuida CSP. Sintaxis y semántica de las órdenes de la notación CSP.

 Tema 5. Introducción a los sistemas de tiempo real

 -Medida del tiempo

-Planificación de tareas

-Avanzado: técnicas para evitar la inversión prioridad, compartición de recursos, planificación dinámica

 Tema 6. Modelización de sistemas concurrentes.

- Modelo de sistema reactivo.
- Requisitos actuales de la técnica de descripción formal de sistemas reactivos.
- Redes de Petri Lugar/Transición (L/T).
- Clasificación de las redes L/T.
- Métodos de análisis de propiedades de redes LT. Árbol de alcanzabilidad. Invariantes de marcado y disparo.
- Métodos de análisis basados en el Algebra Lineal de Matrices.
- Redes de Petri Coloreadas (CPN).
- Definición formal. Técnicas de representación.
- Equivalencia con las redes L/T.
- Verificación de propiedades de sistemas reactivos.

 Seminarios

1. Hebras Posix
2. Lenguaje de programación Java.
3. JCSP (CSP for Java).

 

APUNTES Y TRANSPARENCIAS

Pincha en los enlaces y descargate las transparencias de los temas. Los archivos en formato PDF ( .pdf) se pueden ver con Adobe Acrobat Reader (gratuito), o con GhostView (en sistemas GNU/Linux o Unix) o GSView (en sistemas Windows). Los archivos están protegidos con una contraseña (pídesela a tus profesores).

Tema 1: Introducción a la Programación Concurrente
Apuntes. Transparencias(4xhoja

 

Tema 2: El problema de la exclusión mutua.
Apuntes. Transparencias (1) . Transparencias(4xhoja)

 

Tema 3: Regiones críticas.
-Apuntes.

-Transparencias . Transparencias(4xhoja)

 

 Monitores.
Apuntes.

Transparencias . Transparencias (4xhoja)

 

Tema 4: Sistemas basados en paso de mensajes.

Apuntes.Transparencias . Transparencias (4xhoja)

Tema 5: Sistemas de tiempo real
Transparencias Parte 1(2xhoja)

Transparencia Parte 2(2xhoja)

Transparencias Parte 3(2xhoja)

Transparencias Parte 4(2xhoja)

 

Tema 6:

Modelización de sistemas concurrentes.
Apuntes y

transparencias redes (incluye CPN)

 
Seminario 1:Hebras Posix.
Transparencias.
 

Seminario 2:Lenguaje Java.
Transparencias.

Transparencias del curso 2002-2003 (formatoA4)

 

Seminario 3: CSP for Java (JCSP)
Transparencias.

Documentacion html de JCSP en línea

Poniendo CSP en práctica (más ligas en la info. sobre Tema5)

PROBLEMAS

Pincha en los enlaces y descarga las relaciones de problemas. Los archivos están protegidos con una contraseña (pídesela a tus profesores).

Relación de problemas 1 (PDF):
Problema de la exclusión mutua. Verificación de programas. Regiones críticas condicionales

Relación de problemas 2 (PDF):
Monitores

Relación de problemas 3 (PDF):
Relación de problemas 4 (PDF):

Tiempo Real

Relación de problemas 5 (PDF):

Relación de problemas 6 (PDF):

Sistemas Basados en Paso de Mensajes

Relación de problemas 7 (PDF):

Redes de Petri

 

BIBLIOGRAFIA

Concurrent programming: principles and practice
G. Andrews. Benjamin Cummings, 1991.

Sistemas Concurrentes y Distribuidos
M.I. Capel Tuñón, S. Rodríguez Valenzuela. Copicentro, 2012.

Sistemas de Tiempo Real y Lenguajes de Programación
A. Burns, A. Wellings. Addison-Wesley, 2002.

Las redes de Petri en la automática y en la Informática
M.Silva. AC, 1984.

Real-time Systems: Scheduling, Analysis and Verification
A.M.K.Cheng. Wiley,  2002.

Concurrent programming: the Java programming language
S. Hartley. University Press, 1998.

Algorithms for mutual exclusion
M. Raynal. North Oxford Academic Publishers,  1986.

Hard Real-time Computing Systems: Predictable Scheduling Algorithms and Applications
G.C. Buttazzo. Springer-Verlag, 2005.

Scheduling in Real-time Systems
F. Cottet y otros. Wiley, 2002.