进程调度
1)设若干个生产者和若干个消费者共用一个有n个单元的有限缓冲区,为了是产销进程协调进行,有人利用P/V操作,对问题做如下安排:
引入两个私有信号量和一个公用信号量:full(初始为0,产品计数)、avail(初值为n,可用缓冲区数)和mutex(初值为1,表示没有进程正在使用缓冲区)。下面程序不完全,请在横线处填进适当的P/V操作。
var full,avail,mutex:semaphore;
begin
full:=0;
avail:=n;
mutex:=1;
parbegin
producer:
repeat
...
Produce next product;
...
____1___
____2___
Add to buffer;
____3___
____4___
Until false;
Consumer;
repeat
____5___
____6___
take from buffer;
____7___
____8___
...
consume product;
...
Until false;
parend;
end;
原创力文档

文档评论(0)