Practico 5 ej 3b

Practico 5 ej 3b

de German Ernesto Larrosa Fiori -
Número de respuestas: 2

¿Cuál es el resultado de intercambiar las instrucciones V del procedimiento
producer_process en la solución al problema productor-consumidor que sigue?

program producer_consumer_relationship;
var exclusive_access : semaphore;
number_deposited : semaphore;
buff : buffer;


procedure producer_process;
var next_result : integer;
begin
while true do
begin
calculate_next_result;
P(exclusive_access);
agrego_buffer(buffer, next_result);
V(exclusive_access);
V(number_deposited);
end while;
end procedure;


procedure consumer_process;
var next_result : integer;
begin
while true do
begin
P(number_deposited);
P(exclusive_access);
next_result := saco_buffer(buffer);
V(exclusive_access);
write(next_result);

end while;
end procedure;


begin {programa principal}
init(exclusive_access, 1);
init(number_deposited, 0);
init_buffer(buffer);
cobegin
producer_process;
consumer_process;
coend
end program.

 

Creo que el intercambiar los V NO generaria un comportamiento indeseado en el sistema, simplemente el consumidor va a demorar un instante mas en acceder al buffer ya que el productor lo va a tener mutoexcluido un instante mas.

Me gustaria que me confirmaran si estoy en lo correcto.

Gracias!

German.