Sistemas de Tiempo Real y Lenguajes de Programación, Alan Burns y Andy Wellings
84-7829-058-3
Real-Time Systems and Programming Languages, 3rd Edition, 1989, 2001
Como ya dije en un comentario anterior, nada nuevo bajo el sol. Comienza con una explicación de los términos más comunes aplicados a la programación en tiempo real, para luego ir detallando aspectos de la misma.
Cada capítulo empieza con un resumen de la terminología empleada, para luego entrar en detalles sobre el tema a tratar; desde mi punto de vista, la profundidad es escasísima salvo alguna excepción. Si lo que el autor cita es todo lo que se sabe en la actualidad sobre el punto tratado, poco estudiado está el tema. Quiero creer que es el autor el que no entra en detalles.
Luego se centra en la forma en que cada lenguaje de programación soporta el tema. Los lenguajes principalmente tratados son ADA, C con soporte POSIX y Java en tiempo real, aunque a veces entra a detallar elementos de otros lenguajes como Occam, Modula y otros todavía más extraños, cuando éstos destacan en algún punto. No conozco ADA, muy poco de Java, pero sí que conozco el C: muy poca profundidad en general. Si el lenguaje soporta la característica, la cita; si no, da unas breves indicaciones sobre cómo se podría implementar y termina.
Luego viene un resumen (quizás lo más valorable del libro), una bibliografía y ejercicios que no me he molestado en mirar salvo excepciones.
Lo cierto es que el libro es muy flojo en general, recorriendo rápidamente todos los temas y a veces yéndose por las ramas, como cuando se pone a desvariar sobre el tiempo, hablando en térmimos filosóficos. No lo recomiendo ni siquiera para un principiante, y menos aún para un profesional que se gane las habichuelas programando sistemas en tiempo real.
Lo más destacable es la explicacion sobre concurrencia, contención y bloqueos de procesos, con el tema de programación de bajo nivel; quizás se hubiera salvado el libro si hubiese tratado estos temas con más amplitud y profundidad.
Un extracto del índice: Fiabilidad y tolerancia a fallos, Excepciones y manejo de excepciones, Programación concurrente, Comunicación y sincronización basada en variables compartidas, Sincronización y comunicación basada en mensajes, Acciones atómicas, procesos concurrentes y fiabilidad, Control de recursos, Capacidades de tiempo real, Planificación, Sistemas distribuidos, Programación de bajo nivel, El entorno de ejecución, Un caso de estudio en Ada.
