definicion semaforo binario( para ejericio 5 del Pco 5)
Número de respuestas: 1
hola, si tengo s: semaforo binario entonces s toma solo los valores 0 ó 1, pero cual sería la definición de los procedimientos P(s) y V(s) ?
En respuesta a Manolo Alberto Petrillo Soria
Re: definicion semaforo binario( para ejericio 5 del Pco 5)
de Gustavo Brown -
El ejercicio 5 del práctico 5 te pide implementar semáforos binarios con semáforos no binarios y viceversa.
Un semáforo binario semánticamente se debe comportar de la siguiente manera:
bool libre_S;
init(S, valor_init: [0 o 1]):
libre_S = true si valor_init = 1; false en caso contrario
P(S):
mientras(not libre_S) espero;
libre_S = false;
V(S):
libre_S = true;
P y V vistos desde afuera deben ser indivisibles.
La implementación particular de los semáforos puede aprovechar los servicios del SO en particular para la parte de esperar, para no hacer un busy waiting podes bloquear al proceso y al hacer un V despertar a un proceso de los que estuviesen bloqueados esperando por el semáforo (teniendo en cuenta de mantener correctamente el estado del semáforo).
Saludos,
Gustavo