Manuel I. Capel Tuñón
Datos técnicos
Este libro ayuda a comprender el conjunto de algoritmos, conceptos y ejemplos clásicos de Programación Concurrente, cuyo objetivo es facilitar el razonamiento, la especificación correcta y la demostración de las propiedades de corrección de sistemas concurrentes y distribuidos modernos. Este es el enfoque adecuado para aprender el funcionamiento de los sistemas distribuidos y de tiempo real, que debe basarse en los algoritmos y los métodos formales.
Se estudian las principales construcciones sintácticas útiles para desarrollar programas concurrentes, que incluyen los lenguajes de programación más utilizados, los marcos de trabajo y las interfaces de programación de aplicaciones del mayor interés actualmente para computación paralela de alto rendimiento.
Presenta un enfoque pedagógico con la incorporación de numerosos ejemplos, así como ejercicios resueltos, que sirven para facilitar la comprensión de los contenidos teóricos. Siempre que la notación de programación lo permite, se verifican las propiedades de corrección concurrentes (seguridad, vivacidad y equidad) de los algoritmos y protocolos utilizando para ello el sistema formal de la lógica de Hoare, ampliado para la verificación de programas paralelos y distribuidos.
El último capítulo está dedicado a introducir las técnicas básicas de programación y análisis de la programación de tareas en tiempo real. Con ello, el libro presenta una unidad temática y didáctica, ya que el desarrollo del software de los sistemas comparte modelos teóricos, que se derivan del modelo abstracto de computación que establece la concurrencia.
Manuel I. Capel Tuñón, que imparte los contenidos del libro a estudiantes de grado y posgrado de Ingeniería Informática y Matemáticas, ha recopilado todo el material didáctico depurado y perfeccionado durante la impartición de numerosos cursos de Programación Concurrente y Desarrollo de Sistemas en Tiempo Real en los planes de estudios de la Universidad de Granada.
1. Introducción a la programación concurrente
1.1. Conceptos básicos y motivación del estudio de la programación concurrente en la actualidad
1.2. Modelo abstracto de programación concurrente
1.3. Exclusión mutua y sincronización
1.4. Mecanismos de sincronización de bajo nivel en memoria compartida.
1.5. Propiedades de los sistemas concurrentes
1.6. Lógica de programas de Hoare y verificación de programas concurrentes
1.7. Ejercicios
2. Algoritmos y mecanismos de sincronización basados en memoria compartida
2.1. Introducción al problema de la exclusión mutua para dos procesos
2.2. Una solución simple al problema de la exclusión mutua: el algoritmo de Peterson
2.3. Monitores como un mecanismo de programación concurrente de alto nivel
2.4. Lenguajes de programación con monitores
2.5. Implementación de los monitores
2.6. El problema de la anidación de llamadas de los monitores
2.7. Verificación de los monitores
2.8. Ejercicios
3. Sistemas basados en paso de mensajes
3.1. Introducción a la programación distribuida
3.2. Mecanismos básicos en sistemas basados en paso de mensajes
3.3. Modelos y lenguajes de programación distribuida
3.4. Verificación de programas distribuidos con procesos comunicantes
3.5. Bibliotecas de paso de mensajes
3.6. Mecanismos de alto nivel para programación de sistemas distribuidos.
3.7. Ejercicios
4. Sistemas de tiempo real
4.1. Introducción a los sistemas de tiempo real
4.2. Modelo simple de tareas de tiempo real
4.3. Planificación de tareas periódicas con asignación de prioridades
4.4. Modelo general de tareas de tiempo real
4.5. Algoritmos de planificación de tareas aperiódicas y esporádicas
4.6. Ejercicios
Bibliografía
Índice
2024 © Vuestros Libros Siglo XXI | Desarrollo Web Factor Ideas