2006级操作系统期末试卷B卷及答案(5)
时间:2026-01-20
时间:2026-01-20
Producer: consumer:
Begin begin
Repeat repeat
Produce an item in nextp; wait(mutex); Wait(mutex); wait(empty); Wait(full); nextc:=buffer(out); Buffer(in):=nextp; out:=(out+1)mod n; In:=(in+1)mod n;
Signal(mutex); signal(mutex);
Until false; consume item in nextc; End until false;
end
答:
Producer: consumer:
Begin begin
Repeat repeat
Produce an item in nextp;
Wait(empty); wait(empty);
Wait(mutex); nextc:=buffer(out); Buffer(in):=nextp; out:=(out+1)mod n; In:=(in+1)mod n;
Signal(mutex); signal(mutex);
Signal(full); signal(empty);
Until false; consume item in nextc; End until false;
end
wait(full);