Entrevista de trabajo en IBM: "Describa una condición de interbloqueo."
Entrevista de trabajo en Dropbox: "¿Qué es una condición de carrera?"
¿Para qué sirve este libro?
Domina conceptos esenciales en el ámbito de la programación concurrente y de tiempo real. Ponlos en práctica con plantillas de código fuente y soluciones. El contexto de uso es el relativo a segundo o tercer curso de Grado en Ingeniería Informática.
Habilidades que adquirirás
- Conoce los fundamentos de la programación concurrente y de la gestión de procesos.
- Maneja adecuadamente las secciones críticas y evita las tan temidas condiciones de carrera para evitar interbloqueos
- Aprende a manejar los semáforos, segmentos de memoria compartida y buzones de mensajes POSIX utilizando el lenguaje de programación C.
- Explora patrones de sincronización para reutilizarlos en nuevos problemas de concurrencia.
- Adéntrate en las posibilidades que te ofrece el lenguaje Ada para gestionar la concurrencia desde una perspectiva de más alto nivel.
- Domina los conceptos relativos a la planificación de sistemas de tiempo real, como ejecutivo cíclico o los protocolos de acotación de prioridad.
- Iníciate en el uso de bibliotecas de desarrollo asociadas a C++, como la biblioteca de hilos de ZeroC ICE.
Esquemas gráficos
- Procesos (página 7). Creación básica de procesos con primitivas POSIX (fork() + execl()).
- Interbloqueo (página 30). Familia de métodos de tratamiento del deadlock.
- Semáforos (página 44). Sincronización de eventos mediante las primitivas wait y signal.
- Paso de Mensajes (página 8). Sincronización entre procesos mediante un esquema beeper para simular recuperación selectiva.
- Monitores (página 177). Buffer compartido modelado mediante un monitor para garantizar la exclusión mutua.
- Planificación TR (página 145). Esquema gráfico de aplicación del protocolo de techo de prioridad inmediato.