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 pa