一.填空题(共1题,100.0分)
1
问题:用P、V操作解决下面问题
司机进程:
REPEAT
启动车辆
正常驾驶
到站停车
UNTIL…
售票员进程:
REPEAT
关门
售票
开门
UNTIL…
解答:
设置信号量:
设同步信号量S_Door,表示是否关好车门,初值为0;设同步信号量S_Stop,表示是否停稳车,初值为0。
则司机进程和乘务员进程描述如下:
司机进程()
{ while(1){
(【1】);
启动;
驾驶;
停车;
(【2】);}
}
乘务员进程()
{while(1){
关门;
(【3】);
售票;
(【4】);
开门;}
}
请分别在【1】【2】【3】【4】四个空白处填写正确的wait操作或signal操作。
(注意:wait和signal字母需要用小写字母,圆括号使用英文半角输入方式书写,信号量与题目所定义的信号量保持一致。)
比如填上答案为:wait(S_Door)或signal(S_Door)
正确答案:
第一空:
wait(S_Door)
第二空:
signal(S_Stop)
第三空:
signal(S_Door)
第四空:
wait(S_Stop)
我的答案: 得分: 100.0分
第一空:
wait(S_Door)
第二空:
signal(S_Stop)
第三空:
signal(S_Door)
第四空:
wait(S_Stop)
批语
答案解析:
答案解析:
同步要求:先关门,后开车;
先停车,后开门
设置信号量:
设同步信号量S_Door,表示是否关车门,初值为0;设同步信号量S_Stop表示是否停车,初值为0。
则司机进程和乘务员进程描述如下:
司机进程()
{ while(1){
wait(S_Door);
启动;
驾驶;
停车;
signal(S_Stop);}
}
乘务员进程()
{while(1){
关门;
signal(S_Door);
售票;
wait(S_Stop);
开门;}
}