Un semáforo es una estructura diseñada para sincronizar dos o más procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.
Consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.
Semáforos, exclusión mutua y sección crítica en sistemas operativos
1. ESPECIALIDAD:
ING. INFORMATICA
MATERIA:
SISTEMAS OPERATIVOS I
TITULAR:
TOLEDO TORRES JACINTO
TRABAJO:
2.4 CONCEPTO DE SEMAFORO, EXCLUSIÓN MUTUA Y SECCIÓN
CRITICA
PRESENTA:
MARIA GUADALUPE ZUÑIGA MENDEZ
SEMESTRE: 4°
GRUPO: “S”
HEROICA CD.JUCHITAN DE ZARAGOZA OAX ,07 DE NOVIEMBRE DEL 2015
2. 2
Un semáforo es una estructura diseñada para sincronizar dos o más procesos, de
modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos
consta de dos operaciones.
Primitivas señal <signal>
Espera <Wait>
Originalmente definidas como P y V por que operan sobre un tipo especial de
variable semáforo “S”. La variable semáforo puede tomar valores enteros y,
excepto posiblemente en su inicialización, solo puede ser accedida y manipulada
por medio de las operaciones
Signal
Wait
Exclusión mutua
Consiste en que un solo proceso excluye temporalmente a todos los demás para
usar un recurso compartido de forma que garantice la integridad del sistema
Sección critica
Es la parte del programa con un comienzo y un final claramente marcados que
generalmente contiene la actualización de una o más variables compartidas. Para
que una solución al problema de la exclusión mutua sea válida, se tienen que
cumplir una serie de condiciones:
Hay que garantizar la exclusión mutua entre los diferentes procesos a la
hora de acceder al recurso compartido. No puede haber 2 procesos dentro
de sus respectivas secciones críticas.
No se deben hacer suposiciones en cuanto a la velocidad relativa de los
procesos en conflicto.
Ningún proceso que este fuera de su sección critica debe interrumpir a otro
para el acceso a la sección critica.
Cuando mas de un proceso desee entrar en su sección critica, se le debe
conceder la entrada en un tiempo finito.
Para la solución al problema de la exclusión mutua hay 3 tipos de soluciones
Soluciones software
Soluciones hardware
Soluciones aportadas por el sistema operativo
3. 3
Solo se permiten tres operaciones
sobre un semáforo:
1. Inicializa (s: Semáforo_Binario; v:
integer) -- > poner el valor del
semáforo s al valor de v (0,1).
2. Espera (wait)(s) if s = 1 then s: = 0
else Suspender la tarea que hace la
llamada y ponerla en la cola de tareas.
3. Señal (signal)(s) if cola de tareas
vacía then s : = 1 else Reanudar la
primera tarea de la cola tareas.
Estas operaciones son procedimientos
que se implementan como acciones indivisibles. En sistemas con un único
procesador bastará simplemente con inhibir las interrupciones durante la ejecución
de las operaciones del semáforo. Al introducir el semáforo se crea un nuevo
estado en el diagrama de transiciones, el de espera.
Sección Crítica
Porción de código con variables compartidas y que debe ejecutarse en exclusión mutua.
Los lenguajes concurrentes deben proporcionar herramientas para resolver este tipo de
problemas.