41.桌上有一只小盘子只能存放一个水果。母亲随机从水果筐中拿一个水果放入空盘子中,若放入盘子的是橘子,便通知儿子吃,若放入盘子的是苹果,便通知女儿吃。如此循环进行。把母亲、儿子和女儿设计成3个进程mother, son和daughter,并采用PV操作管理时,并发程序的结构如下:beginS1,S2, S3:semaphore;S1:=1; S2:=0; S3:=0;/* S2是儿子的同步信号量,S3是女儿的同步信号量*/cobeginprocess mother/*母亲进程*/beginL1:从筐中拿一个苹果或一个橘子;_________①__________;将该水果放入盘子;if这次放的是橘子then_________②_________;else _________③_________;goto L 1;end;process son/*儿子进程*/begin L2:_______④_______;从盘子中拿这个橘子;_________⑤________;吃这个橘子;goto L2;end;process daughter/*女儿进程*/beginL3:________⑥_______;从盘子中拿这个苹果;________⑦________;吃这个苹果;goto L3;end;coend;end;问题:(1)写出信号量S1的作用及其初值的含义。(2)在上述程序有编号的空白处填入正确的PV操作,以完善相应程序。
(1)S1是母亲进程的同步信号量,(1分)初值为1,表示开始时母亲可放一个水果到盘子中。(1分)(2)①P(S1) (1分) ②V(S2) (1分) ③V(S3) (1分)④P(S2) (1分) ⑤5V(S1) (1分) ⑥6P(S3) (1分) ⑦V(S1) (1分)