之前学了信号量机制的几个问题:
这里再介绍几个问题。
一、猴子过铁索问题
1、问题描述
两个山崖间有一根铁索,山崖两边各有一群猴子,任何时候同时只能有一个方向的猴子通过铁索。使用P、V操作写出山崖两边的猴子过铁索的算法。
2、问题分析
一个山上的猴子就是一群读者,第二个山上的猴子为另一群读者,两群读者互斥使用铁索。
设信号量waymutex表示山两边的猴子对铁索的互斥共享,初值为1;设m1count和m2count表示对两边猴子的记数,其初值为0;设m1mutex 和m2mutex表示两群猴子中各猴子互斥访问记数变量的信号量,初值都为1,其同步与互斥的算法如下:
semaphore waymutex=1; semaphore m1mutex=1, m2mutex=1