资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,操作系统习题解答,计算机操作系统,PV,操作的含义:,PV,操作由,P,操作原语和,V,操作原语组成(,原语是不可中断的过程,),对信号量进行操作,具体定义如下:,P,(,S,):将信号量,S,的值减,1,,即,S=S,1,;,如果,S,0,,则该进程继续执行;否则该进程置为等待状态,排入等待队列。,V,(,S,):将信号量,S,的值加,1,,即,S=S+1,;,如果,S0,,则该进程继续执行;否则释放队列中第一个等待信号量的进程。,PV,操作的意义:,我们用信号量及,PV,操作来实现进程的同步和互斥。,PV,操作属于进程的,低级通信,。,信号量(,semaphore,),的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。,信号量的值与相应资源的使用情况有关,。当它的值大于,0,时,表示当前可用资源的数量;当它的值小于,0,时,其绝对值表示等待使用该资源的进程个数。注意,,信号量的值仅能由,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,。,生产者,-,消费者问题,一个生产者,一个消费者,公用一个缓冲区。,定义两个同步信号量:,empty,表示缓冲区是否为空,初值为,1,。,full,表示缓冲区中是否为满,初值为,0,。,生产者进程,while(TRUE,),生产一个产品,;,P,(,empty,);,产品送往,Buffer;,V,(,full,);,消费者进程,while(True,),P,(,full,);,从,Buffer,取出一个产品,;,V,(,empty,);,消费该产品,;,设公共汽车上,司机和售票员的活动分别是:,司机的活动:启动车辆;,正常行车;,到站停车;,售票员的活动:关车门;,售票;,开车门;,在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和,P,、,V,操作实现它们的同步。,解:,在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。因此司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步,,在本题中,应设置两个信号量:,S1,、,S2,。,S1,表示是否允许司机启动汽车,其初值为,0,;,S2,表示是否允许售票员开门,其初值为,0,。用,P,、,V,原语描述如下:,int,Sl,0;,int,S2,0;,main(),cobegin,driver();,busman();,coend,driver(),while(1),P(S1);,启动车辆,;,正常行车,;,到站停车,;,V(S2);,busman(),while(1),关车门,;,V(Sl,);,售票,;,P(S2);,开车门,;,上下乘客,;,四个进程,A,、,B,、,C,、,D,都要读一个共享文件,F,,系统允许多个进程同时读文件,F,。但限制是进程,A,和进程,C,不能同时读文件,F,,进程,B,和进程,D,也不能同时读文件,F,。为了使这四个进程并发执行时能按系统要求使用文件,现用,PV,操作进行管理,请回答下面的问题:,(,1,)应定义的信号量及初值:,。,(,2,)在下列的程序中填上适当的,P,、,V,操作,以保证它们能正确并发工作:,A()B()C()D(),1;3;5;7;,read F;read F;read F;read F;,2;4;6;8;,思考题解答:,(,1,)定义二个信号量,S1,、,S2,,初值均为,1,,即:,S1=1,,,S2=1,。其中进程,A,和,C,使用信号量,S1,,进程,B,和,D,使用信号量,S2,。,(,2,)从,1,到,8,分别为:,P(S1)V(S1)P(S2)V(S2)P(S1)V(S1)P(S2)V(S2),参考题:,桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用,P,、,V,原语实现爸爸、儿子、女儿三个并发进程的同步。,
展开阅读全文