第5讲 随堂典型问题填空题1

一.填空题(共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);

开门;}

}

原创文章 85 获赞 35 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43786637/article/details/105296720
今日推荐