2. Primer escenario: compartición de recursos
Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.
Primer Escenario: Compartición de Recursos
Resumen
En este escenario se analizan procesos (o flujos de ejecución) que comparten algún recurso lógico, como un rango de direcciones de memoria (conteniendo una estructura de datos compartida) o un dispositivo de E/S.
Contexto
Las variables compartidas son una forma habitual de comunicación dentro del sistema. Cuando distintos procesos acceden simultáneamente a un objeto lógico compartido, surgen problemas de concurrencia.
Contenido del escenario
-
Sincronización de procesos (sección 2.1): se analiza por qué es necesaria la sincronización y se define la sección crítica como concepto fundamental.
-
Semáforos (sección 2.2): se presenta la herramienta de sincronización más utilizada para resolver problemas de exclusión mutua.
-
Semáforos en Linux (sección 2.3): se describe la implementación concreta de semáforos POSIX en Linux.
Idea central
Cuando los procesos comparten recursos lógicos, la ejecución concurrente sin sincronización adecuada produce errores irrecoverables. Los semáforos ofrecen una solución eficiente y sencilla para garantizar la exclusión mutua.
Ideas clave
- La compartición de variables es la causa principal de problemas de sincronización.
- Los semáforos son el mecanismo principal para resolver la exclusión mutua en procesos que comparten memoria.
- El escenario de compartición de recursos conduce naturalmente al problema de los deadlocks.