The Little Book of Semaphores 信号量小书 第六章 不那么经典的问题 6.3 狒狒穿越问题

第六章 不那么经典的问题

 

6.3 狒狒穿越问题

这个问题改编自Tanenbaum的操作系统:设计和实现[12]。 南非克鲁格国家公园(Kruger National Park)的某处有一个深峡谷,还有一条横跨峡谷的绳索。 狒狒可以在绳子上手挽手地摆动着穿过峡谷,但如果两个朝相反方向走的狒狒在中间相遇,他们将会战斗并摔死。 此外,绳索仅足以容纳5只狒狒。 如果绳子上同时有更多的狒狒,它就会断开。

假设我们可以教狒狒使用信号量,我们想设计一个具有以下属性的同步方案:

•一旦狒狒开始越过,它就会保证到另一边而不会碰到另一边的狒狒。
•绳索上永远不会有超过5只狒狒。
•持续不断的狒狒从一个方向穿过不应该无限期地阻止狒狒向另一个方向走(不要有饥饿问题)。

我不会包括这个问题的解决方案,因为答案应该很清楚。

 

你可能感兴趣的:(信号量小书)