生产围棋的工人不小心把相等数量的黑子和白子混装在一个盒子里,现在要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程PA

作者:高老师 浏览 1

生产围棋的工人不小心把相等数量的黑子和白子混装在一个盒子里,现在要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程PA和PB组成,系统功能如下:
(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


📱 扫码体验刷题小程序

微信小程序二维码

扫一扫使用我们的微信小程序

热门题目

已复制到剪贴板