hola que hace

Páginas: 13 (3075 palabras) Publicado: 4 de mayo de 2013
SEMÁFOROS
Dijkstra dio en 1968 una solución al problema de la exclusión mutua con la introducción del concepto de semáforo binario. Está técnica permite resolver la mayoría de los problemas de sincronización entre procesos y forma parte del diseño de muchos sistemas operativos y de lenguajes de programación concurrentes.

Un semáforo binario es un indicador (S) de condición que registra si unrecurso está disponible o no. Un semáforo binario sólo puede tomar dos valores: 0 y 1. Si, para un semáforo binario, S = 1 entonces el recurso está disponible y la tarea lo puede utilizar; si
S = 0 el recurso no está disponible y el proceso debe esperar.
Los semáforos se implementan con una cola de tareas o de condición a la cual se añaden los procesos que están en espera del recurso.
Sólo sepermiten tres operaciones sobre un semáforo
- Inicializar
- Espera (wait)
- Señal (signal)
En algunos textos, se utilizan las notaciones P y V para las operaciones de espera y señal respectivamente, ya que ésta fue la notación empleada originalmente por Dijkstra para referirse a las operaciones.
Así pues, un semáforo binario se puede definir como un tipo de datos especial que sólo puede tomarlos valores 0 y 1, con una cola de tareas asociada y con sólo tres operaciones para actuar sobre él.
Las operaciones pueden describirse como sigue:

• inicializa (S: SemaforoBinario; v: integer)
Poner el valor del semáforo S al valor de v (0 o 1)
• espera (S)
if S = 1 then S := 0
else suspender la tarea que hace la llamada y ponerla
en la cola de tareas
• señal (S)
if la cola de tareasestá vacía then S := 1
else reanudar la primera tarea de la cola de tareas

Las operaciones son procedimientos que se implementan como acciones indivisibles y por ello la comprobación y cambio de valor del indicador se efectúa de manera real como una sola operación, lo cual hay que tener presente a la hora de diseñar el planificador de tareas. En sistemas con un único procesador bastarásimplemente con inhibir las interrupciones durante la ejecución de las operaciones del semáforo. En los sistemas multiprocesador, sin embargo, este método no resulta ya que las instrucciones de los procesadores se pueden entrelazar de cualquier forma. La solución está en utilizar instrucciones hardware especiales, si se dispone de ellas, o en introducir soluciones software como las vistas anteriormente,que ya indicamos, que servían tanto para sistemas uniprocesador como para sistemas multiprocesador.
La operación inicializa se debe llevar a cabo antes de que comience la ejecución concurrente de los procesos ya que su función exclusiva es dar un valor inicial al semáforo.

Un proceso que corre la operación espera y encuentra el semáforo a 1, lo pone a 0 y prosigue su ejecución. Si el semáforoestá a 0 el proceso queda en estado de espera hasta que el semáforo se libera. Dicho estado se debe considerar como uno más de los posibles de un proceso. Esto es así debido a que un proceso en espera de un semáforo no está en ejecución ni listo para pasar a dicho estado puesto que no tiene la CPU ni puede pasar a tenerla mientras que no se lo indique el semáforo. Tampoco es válido el estadosuspendido, ya que este estado está pensado para que lo utilicen llamadas al sistema operativo para suspender o reactivar un proceso que no tiene por qué tener una conexión con los semáforos. El diagrama de transición de estados de la figura se puede ampliar con un nuevo estado que denominamos de espera.

Figura 1. Transiciones para el estado de espera

Cuando se ejecuta la operación señal puedehaber varios procesos en la lista o cola, el proceso que la dejará para pasar al estado listo dependerá del esquema de gestión de la cola de tareas suspendidas que se haya implementado en el diseño del semáforo, por ejemplo: prioridades, FIFO, etc. Si no hay ningún proceso en espera del semáforo este se deja libre (S := 1) para el primero que lo requiera.



EXCLUSION MUTUA CON SEMÁFOROS
La...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • hola que hace
  • hola que hace
  • hola que hace
  • HOLA, ¿QUÉ HACES?
  • hola que haces
  • Hola que hace !
  • hola que hace
  • hola que hace

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS