Algoritmo del semaforo

Solo disponible en BuenasTareas
  • Páginas : 2 (465 palabras )
  • Descarga(s) : 0
  • Publicado : 4 de diciembre de 2010
Leer documento completo
Vista previa del texto
Semáforos

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