桌上有一空盘,允许存放最多两个水果。爸爸可向盘中放苹果或橘子,儿子专等吃盘中的橘子,女儿专等吃盘中的苹果。规定当盘子不满时,一次只能放一只水果;当盘子不空时,一次只能取一只水果;父亲放水果时,儿子女儿不能取;儿子女儿去水果时,父亲不能放。
(1) 请分析,本例中临界资源是什么?
(2) 下面是用P、V操作实现的爸爸、儿子、女儿三个进程的同步,请完成程序中空行部分。
Semaphore mutex=____;//定义互斥信号量
int empty=_____,apple=______,orange=________;//定义同步信号量Father://父亲进程
While(1) {
________;
________;
Put an apple or orange;
If (fruit ==apple)
________:
Else
________;
}
Daughter://女儿进程
While(1){
_________;
_________;
Fetch an apple;
_________;
_________;
}
Son://儿子进程
While(1){
_________;
_________;
Fetch an orange;
_________;
_________;
}