Sistemas operativos modernos
preciso. Un proceso, que de otra manera ejecutaría signal, puede ver que tal operación no es necesaria mediante la examinación de las variables. En la figura 2-27 se presenta un bosquejo del problema del productor-consumidor con mo nitores, escrito en un lenguaje imaginario, Pascal Simple. La ventaja de usar Pascal Simple aquí es que es puro y sencillo, y sigue con exactitud el modelo de Hoare/Brinch Hansen. condition lleno, vacio; integer cuenta: procedure insertar(elem: integer); begin if cuenta=N then wBÌt(lleno) insertar_elem(eiem); cuenta := cuenta + 1; if cuenta= 1 then signalfvac/o) end; function quitar: integer; begin if cuenta=0 then waitf vacioj; quitar = quitar_elem; cuenta ;= cuenta - 1; if cuenta-N - 1 then signsk\(lleno) end; cuenta := 0; end monitor; E rocedure productor; egin while true do begin eiem = producir_elem; ProductorConsumidor. insertar(eiem) end end; procedure consumidor; begin while true do begin eiem = ProductorConsumidor.quitar; consumir_elem(eiem) end end; Figura 2-27. Bosquejo del problema del productor-consumidor con monitores. Sólo un procedimiento de monitor está activo a la vez. El búfer tiene N ranuras.
RkJQdWJsaXNoZXIy MjI4NDcx