猎人,兔子,饭店老板问题)"/>
操作系统PV操作伪代码(猎人,兔子,饭店老板问题)
题目:
有一只最多能装2只兔子的铁笼子,猎人仅能向笼子中放入兔子(每次只能放入1只),若笼子是满的,则猎人必须等待;饭店老板仅能从笼子中取兔子(每次只能取出1只),若笼子是空的则他也必须等待。假设初始时笼子是空的。定义信号量并初始化,使用P、V操作模拟猎人和饭店老板进程之间的同步与互斥。
int n = 2;semaphore empty = n;/*empty表示笼子空余数量*/semaphore full = 0;/*full表示笼子现有兔子*/semaphore mutex = 1;void hunter(){while (1){P(empty);P(mutex);//放一只兔子;V(mutex);V(full);}}void shopKeeper(){while (1){P(full);P(mutex);//取一只兔子;V(mutex);V(empty);}}
更多推荐
操作系统PV操作伪代码(猎人,兔子,饭店老板问题)
发布评论