浙江大学远程教育学院
《操作系统原理》课程作业
第一次(第 1、2 章)
应用题
1.桌上有一个空盒,盒内只允许放一个水果。妈妈轮流向盒内放桔子和苹果,儿子专等吃盒
中的桔子,女儿专等吃盒中的苹果。若盒内已有水果,放者必须等待,若盒内没有自己吃的
水果,吃者必需等待。试在下述类 PASCAL 程序中虚线位置分别填上信号量、信号量初值和
P、V 操作实现三个进程正确的并发执行。
var (信号量)﹎﹎﹎﹎﹎﹎S , S1 , S2﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎:semaphore:=
(信号量初值) ﹎﹎﹎﹎﹎﹎1 , 0 , 0﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎﹎;
begin
parbegin
妈:begin
repeat
準備
﹎﹎P (S )﹎﹎
向盒内放桔子
﹎﹎V (S1 )﹎﹎﹎
準備
﹎﹎﹎﹎﹎﹎﹎﹎
向盒内放苹果
﹎﹎V (S2)﹎﹎
until false
end
儿:begin
repeat
﹎﹎﹎P (S1 )﹎﹎
拿盒中的桔子
﹎﹎﹎V (S)﹎﹎
吃桔子
until false
end
女:begin
repeat
﹎﹎P (S2 )﹎﹎
拿盒中的苹果
﹎﹎V (S)﹎﹎﹎
吃苹果
until false