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
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
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.

2.4 concepto-de-semaforo-exclusion-mutua-y-seccion-critica

  • 1.
    ESPECIALIDAD: ING. INFORMATICA MATERIA: SISTEMAS OPERATIVOSI 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 esuna 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 permitentres 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.