某火车票销售系统有n个售票点,该系统为每个售票点创建一个进程Pj(i=1,2,,...,n)。假设Hj(j=1,2,...,m)单元存放某日某车次的剩余票数,Temp为Pi进程的临时工作单元,x为某用户的订票张数。初始化时系统应将信号量S赋值为 (28) 。Pi进程的工作流程如下图所示,若用P操作和V操作实现进程间的同步与互斥,则图中a、b和c应分别填入 (29) 。
(28)处填()。
A.0
B.1
C.2
D.3
参考答案:B
解析:
[分析]: 本题考查PV操作的相关知识,在计算机操作系统中,PV操作是进程管理中的难点。
利用信号量和PV操作实现进程互斥的一般模型是:
进程P1 进程P2 …… 进程Pn
…… …… …… ……
P(S); P(S); P(S);
临界区; 临界区; 临界区;
V(S); V(S); V(S);
…… …… ……
其中信号量S用于互斥,初值为1。
使用PV操作实现进程互斥时应该注意以下几点。
(1)每个程序中用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。若有多个分支,要认真检查其成对性。
(2)P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。
(3)互斥信号量的初值一般为1。
对于28题,有多个售票点,为了让每个售票点在售票时对剩余票数进行互斥操作,需设立一个互斥信号,其初值为1。
对于29题,当某个售票点有售票请求时对信号进行P操作。根据流程图,对Temp进行判断,若Temp≥x,则接受售票请求,否则拒绝售票请求。所以a处是P操作,b和c处是V操作,A选项正确。