计算机操作系统课后习题答案(第三版) 汤小丹(13)
发布时间:2021-06-08
发布时间:2021-06-08
计算机操作系统(第三版)汤小丹 梁红兵 汤小瀛西安电子科技大学出版社
等待。
(2)get(item)过程。消费者利用该过程从缓冲池中取出一个产品,当count≤0
时,表示缓冲池中已无可取的产品,消费者应等待。
PC 管程可描述如下:
type producer-consumer =monitor
Var in,out,count:integer;
buffer:array[0,…,n-1]of item;
notfull,notempty:condition;
procedure entry dot(item)
begin
if count>=n then not full.wait;
buffer(in):=nextp;
in:=(in+1)mod n;
count:=count+1;
if notempty.queue then notempty.signal;
end
procedure entry get(item)
begin
if count<=0 then not full.wait;
nextc:=buffer(out);
out:=(out+1)mod n;
count:=count-1;
if notfull.quene then notfull.signal;
end
begin in:=out:=0;
count:=0
end
在利用管程解决生产者一消费者问题时,其中的生产者和消费者可描述为: producer: begin
pepeat
produce an inem in nestp
PC.put(item);
until false;
end
consumer: begin
repeat
PC.get(item);