早教吧 育儿知识 作业答案 考试题库 百科 知识分享

操作系统PV操作题:一个快餐店有4类职员一个快餐店有4类职员:(1)领班:接受顾客点菜(2)厨师:准备顾客的饭菜(3)包工:将做好的饭菜打包(4)出纳员:收款并提交食品.

题目详情
操作系统PV操作题:一个快餐店有4类职员
一个快餐店有4类职员:(1)领班:接受顾客点菜 (2)厨师:准备顾客的饭菜 (3)包工:将做好的饭菜打包 (4)出纳员:收款并提交食品.
▼优质解答
答案和解析
你要将这四类职员看成四类进程P1,P2,P3,P4,然后四类进程对两个变量进行操作,s1是点菜数量,s2是每道菜的状态,其值0表示菜做好,1表示菜做好了
具体
定义三个信号量:
s1——点菜数量,初始值为0;
s2——菜的状态,初始值为0;
s3——包装状态,初始值为0;
领班进程:
while(true){
顾客点菜;
v(s1); //此时表示有人点菜了
}
厨师进程:
while(true){
p(s1); //保证有人点菜之后才会准备菜
准备饭菜;
v(s2);
}
包工进程:
while(true){
p(s2); //保证厨师做好饭菜才能准备包装
包装好饭菜;
v(s3);
}
出纳员进程:
while(true){
p(s3); //保证包装好才能出纳
收款并提交食品;


回答结束.如果考虑到必须完成一个顾客订单之后,才能接下一位顾客订单的话,那就可以增加一个控制变量s4(初始值为0),在领班进程开始时,即“顾客点菜”之前进行v(s4)操作,在出纳员进程中增加v(s4)操作即可.