Algoritmo del semaforo
Sistemas Operativos 1
Universidad de San Carlos de Guatemala
Guatemala, Marzo de 2009
Conceptos (I)
• Los semáforos son una solución, del tipo soporte al sistema operativo paragarantizar la exclusión mutua • Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entreellos.
Conceptos (II)
• Un semáforo nos sirve para poder permitir o restringir a los procesos o hilos el acceso a algún recurso compartido • Un semáforo básico es una estructura formada por unaposición de memoria y dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede añadir una cola de threads para recordar el orden en que se hicieron las peticiones.
OperacionesBásicas
• Los semáforos cuentan con operaciones básicas, una de ellas es para reservarlo y la otra para liberarlo, wait (espera) y signal (señal) respectivamente, equivalente down y up. • Existe unatercera operación que consiste en inicializar el semáforo. • Existen algunos semáforos que manejan una cola de espera.
Wait, Down ó Espera
• Decrementa en una unidad el semáforo
• Bloqueahilo/proceso si el semáforo es menor que cero, sino entonces permite a hilo/proceso continuar • Llamada W(semaforo) o down(semaforo)
Signal, Up ó Señal
• Incrementa semáforo en uno y si hay algúnproceso/hebra esperando lo despierta • Existe un valor máximo para incrementar el semáforo, este no se va a infinito • Llamada S(semáforo) o up(semáforo)
Inicializador
• Los semáforos pueden ser de 2tipos: Binarios o Generales (Contadores).
• La operación de inicializador definirá si el semáforo será binario o no, es decir, si se inicializa con 1, el semáforo será binario ya que solo podrá manejarun recurso compartido, en caso de tener “N” recursos compartidos se inicializara con “N”. • Si tenemos “N” procesos inicializamos un semáforo para que solo “N” procesos acceda a un recurso...
Regístrate para leer el documento completo.