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

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
解析:操作系统的重要功能是解决进程间的同步与互斥问题。解决的办法主要有加锁法、信号量机制、管程机制等。信号量是由一个整型变量和一个等待队列构成的,对这个整型变量除了做初始化之外,只能实施P-V操作,即P操作和V操作。P-V操作是原子操作,不可分割使用,必须成对出现,属于低级的进程通信原语。采用P-V操作实现进程同步的步骤是首先为各并发进程设置私用信号量,然后为私用信号量赋初值,最后利用P-V原语和私用信号量规定各进程的执行顺序。采用P-V操作实现进程互斥的步骤是首先为临界资源设置公用信号量,然后为公用信号量赋初值,最后利用P-V原语和公用信号量实现并发进程的互斥使用临界资源。在本题中,收银员进程和顾客付款进程类似于生产者和消费者进程,顾客要想付款必须判断收银员是否忙,忙则等待,不忙则付款。因此,对应的收银员进程和顾客付款进程私用信号量分别是S1和S2,由于开始时没有顾客去付款,收银员也没有收费,所以S1和S2的初值为0。这里的公用临界资源是允许进入的(可容纳的)顾客人数n,如果有n+1个顾客想购物,那么第n+1个顾客就得等待,直到有人购物完毕出来方能进去,所以临界资源的信号量为Sn=n。顾客进入超市时,允许进入的顾客人数减1,执行P(Sn),购物完毕准备付款时,通知收银员进程有顾客付款,执行V(S1),此时收银员进程执行P(S1)操作后就可进入收费,收费完成后收银员进程执行V(S2),以通知顾客收费完毕,此时顾客执行P(S2)就可离开收银台,在离开超市时需执行V(Sn),释放资源。