(1)PA专拣黑子,PB专拣白子。
(2)每个进程每次只拣一个子,当一个进程拣子时,不允许另一个进程去拣子。
(3)当一个进程拣一个子(黑或白)后,必须让另一个进程去拣一个子(白或黑)。请回答:
(1)这两个并发进程之间的关系是同步还是互斥?
(2)写出P、V操作管理时应定义的信号量及其初值。
(3)根据定义的信号量,写出用P、V操作管理两个并发进程的程序。
【正确答案】:
(1)两个进程之间是同步关系。因为这两个进程都要从盒子里面去拣棋子,但规定了两个进程必须轮流取不同的颜色的棋子,因而相互间要互通消息,这显然是一个进程同步问题。
(2)在该问题中,应该区分“允许拣黑子”和“允许拣白子”两个消息,所以应该定义两个信号量S₁和S₂,分别和两个消息相对应,初值是S₁:=1;S₂:=0或者S₁:=0;S₂=1。
(3)程序如下:

P118