EXCLUSIÓN MUTUA.
La sección crítica es el fragmento de código y el instante donde puede modificarse un recurso compartido.
La exclusión mutua necesita ser aplicada sólo cuando un proceso accede a datos compartidos; ejemplo, la lectura de archivos, cuando los procesos ejecutan operaciones que no estén en conflicto entre sí; debe permitírseles proceder de forma concurrente. La condición de exclusión mutua debe conservarse para recursos no compatibles. Por ejemplo varios procesos no pueden compartir una impresora al mismo tiempo. Los recursos compatibles, por otra parte, no requieren acceso mutuamente excluyente y por lo tanto no pueden participar en un bloqueo mutuo.
SEMÁFOROS
Dijkstra
dio en 1968 una solución elegante y sencilla al problema de la exclusión mutua
con la introducción del concepto de semáforo binario. Un semáforo es una
variable especial (o tipo abstracto de datos) que constituye el método clásico
para restringir o permitir el acceso a recursos compartidos. Esta técnica
permite resolver la mayoría de los problemas de sincronización entre procesos y
forma parte del diseño de muchos sistemas operativos y de lenguajes de
programación concurrentes. Un semáforo binario es un indicador de condición (S)
que registra si un recurso está disponible o no. Un semáforo binario sólo puede
tomar dos valores: O y 1. Si, para un semáforo binario. S=1 entonces el recurso
está disponible y la tarea lo puede utilizar; si S=0 el recurso no está
disponible y el proceso debe esperar. Los semáforos sólo permiten tres
operaciones sobre ellos: Espera. Señal. Inicializar.
Para más información detallada
ver el siguiente link: Exclusión Mutua
No hay comentarios:
Publicar un comentario