生产围棋的工人不小心把相等数量的黑子和白子混装在一个箱子里。现要用自动分拣系统把黑子和白子分开。该系统由两个并发进程A和B组成。系统功能为:进程A专拣黑子;进程B专拣白子;当一个进程在拣棋子时不允许另一个进程去拣;每个进程每次只拣一粒棋子,即一个进程拣了一粒棋子后必须让另一进程去拣。

回答下列问题:
(1)用PV操作管理时,假定让进程A先拣棋子,写出应定义的信号量及其初值。
(2)假定这两个进程的程序如下,把应执行的P、V操作填入程序中的方框内,以保证并发程序的正

生产围棋的工人不小心把相等数量的黑子和白子混装在一个箱子里。现要用自动分拣系统把黑子和白子分开。该系统由两个并发进程A和B组成。系统功能为:进程A专拣黑子;进程B专拣白子;当一个进程在拣棋子时不允许另一个进程去拣;每个进程每次只拣一粒棋子,即一个进程拣了一粒棋子后必须让另一进程去拣。

回答下列问题:
(1)用PV操作管理时,假定让进程A先拣棋子,写出应定义的信号量及其初值。
(2)假定这两个进程的程序如下,把应执行的P、V操作填入程序中的方框内,以保证并发程序的正确执行。


【正确答案】:(1)定义两个信号量S1和S2,他们的初值为S1:=1(1分);S2:=0
(2)
①P(S1)(2分)
②V(S2)(2分)
③P(S2)(2分)
④V(S1)(2分)
[注]信号量符号可自定义,但信号量初值以及所执行的P操作和v操作应对应正确。
Top