Академический Документы
Профессиональный Документы
Культура Документы
EL PLANIFICADOR DE PROCESOS
SEMFOROS
Materia:
Sistemas Operativos
Alumna:
Castillo Fernndez, Keidy Mayerlin
C.I. V- 23.136.754
Seccin:
VIIS-01N
Docente:
Ramrez, Mara
INTRODUCCIN
SEMFOROS
Autor 1
. W. Dijkstra (1965) sugiri el uso de una variable entera para contar el
nmero de seales de despertar, guardadas para un uso futuro. En su
propuesta introdujo un nuevo tipo de variable, al cual l le llam semforo.
Un semforo podra tener el valor 0, indicando que no se guardaron seales
de despertar o algn valor positivo si estuvieran pendientes una o ms
seales de despertar.
Dijkstra propuso que se tuvieran dos operaciones, down y up
(generalizaciones de sleep y wakeup, respectivamente). La operacin down
en un semforo comprueba si el valor es mayor que 0. De ser as, disminuye
el valor (es decir, utiliza una seal de despertar almacenada) y slo contina.
Si el valor es 0, el proceso se pone a dormir sin completar la operacin down
por el momento. Las acciones de comprobar el valor, modificarlo y
posiblemente pasar a dormir, se realizan en conjunto como una sola accin
atmica indivisible. Se garantiza que, una vez que empieza una operacin de
semforo, ningn otro proceso podr acceder al semforo sino hasta que la
operacin
se
haya
completado
bloqueado.
Esta
atomicidad
es
Ventajas e inconvenientes
La principal ventaja de los semforos frente a los cerrojos es que permiten
sincronizar dos o ms procesos de manera que no se desperdician recursos
de CPU realizando comprobaciones continuadas de la condicin que permite
progresar al proceso.
Los inconvenientes asociados al uso de semforos son los siguientes:
SiId_semforo>0
EntoncesId_semforo:= id_semaforo-1;
En caso contrario detiene_proceso_llamador_cola_sem;
Se puede producir un error si realizamos la operacin sobre un
semforo no inicializado.
3. sealizar sealiza(Id_semforo)
Cuando se realiza esta operacin y hay procesos detenidos en la cola del
semforo, el primero de la cola ser autorizado a continuar. Si la operacin
se realiza sin procesos detenidos, la variable del semforo se incrementa.
CONCLUSIN
errores.
Con los semforos binarios hay que permanecer el menor tiempo
peligrosas.
Para recibir una seal del semforo, los procesos ejecutan la primitiva
wait(s); si la seal correspondiente an no se ha transmitido, el
proceso es suspendido hasta que tenga lugar la transmisin.
REFERENCIAS
Extrado
el
25
de
febrero
de
2015
desde
http://sistemasoperativos.angelfire.com/html/2.4.2.1.html,
Autor 3: Martnez P.