早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

A.P(S1), V(S2)B.P(Sn), V(S1)C.P(S2), V(S1)D.V(S1),P(S2)

题目

A.P(S1), V(S2)

B.P(Sn), V(S1)

C.P(S2), V(S1)

D.V(S1),P(S2)

参考答案
正确答案:A
解析:S1是收银员进程的私用信号量;32是顾客进程的私用信号量。由题意可知:每当有一个顾客进入时,允许进入的人数就是—1,所以应该是对信号量Sn的P操作,选C,即P(Sn)。很明显,付款进程和收银员进程是一个多消费者和一个生产者的问题。开始前应该判断收银员进程是否忙。忙则挂起等待,不忙则付款。收银员进程判断是否有人来付款,有人则让其他进程等待,没人则自己挂起等待。收银完毕,则自己允许其他进程调用。因为Sn初值为n,而收银员只有一个同时也只能处理一个付款者。可以排除所有(17)、(18)中的P(Sn)的选项。cacc//不成立,因为S1和S2信号量没有P,V成对,即只有消费或者生产cd//不成立,理由同上dadc//不成立,理由同上dd//不成立,理由同上由题目定义S1和S2的初始值为0,如果(17)选择C,即P(S2)先运行,V(S1)后运行,即当开始顾客进程中的P