sistemas operativos - semáforos
DESCRIPTION
Uso de los semáforos en el multiprocesamiento de los Sistemas Operativos - Importancia y funcionamiento.TRANSCRIPT
SISTEMAS OPERATIVOS
Integrantes:- Daniel Ortiz Costa- Ricardo Galarza- Ivo Andrés Astudillo
2013, Loja-Ecuador
SEMÁFOROS
Sistemas Operativos – Semáforos
Un Semáforo es una variable especial que constituye una serie de opciones
elementales para poder restringir o garantizar el acceso a los recursos en un
Sistema Operativo con un entorno de multiprocesamiento.
Sistemas Operativos – Semáforos
Un semáforo se constituye por dos métodos elementales:
1. wait() – denominado P2. signal() – denominado V
Dependiendo del número de recursos a gestionar, un semáforo puede ser:
1. Semáforo contador (Más de 1 recurso)2. Semáforo binario (1 solo recurso)
Sistemas Operativos – Semáforos
Inicia(Semáforo s, Entero r)
{s = r;
}
El número de recursos a gestionar se define por la variable entera r.
Inicialización
Sistemas Operativos – Semáforos
P(Semáforo s) {
if(s>0) s = s-1;
else wait();
}Debido a que s representa el número de recursos disponibles, cuando un proceso requiere utilizar alguno, llama al método wait(), en donde si es que hay procesos disponibles se resta un número del semáforo, sino se mantiene en un bucle hasta que tenga alguno libre.
Espera wait() - P
Sistemas Operativos – Semáforos
Un proceso se bloquea mientras se encuentra en el bucle wait()
Sistemas Operativos – Semáforos
V(Semáforo s) { if(!procesos_bloqueados)
s = s+1; else
signal(); }
Debido a que s representa el número de recursos disponibles, cuando un proceso haya dejado de utilizar uno, se vuelve a sumar al semáforo, siempre y cuando no haya procesos bloqueados.
Señal signal() - V
Sistemas Operativos – Semáforos
Si es que existen procesos bloqueados, ellos tienen prioridad para acceder a los recursos que se hayan liberado.
Sistemas Operativos – Semáforos
Los procesos son indivisibles, no puede haber modificación simultánea de los valores del semáforo, o pueden causarse
conflictos.