进程同步互斥练习

进程同步互斥练习

ID:6339731

大小:37.50 KB

页数:2页

时间:2018-01-10

进程同步互斥练习_第1页
进程同步互斥练习_第2页
资源描述:

《进程同步互斥练习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.如果信号量S的初值是5,现在信号量的值是-5,那么系统中的相关进程至少执行了几个P(S)操作?与信号量S相关的处于阻塞状态的进程有几个?为使信号量S的值大于0,应进行怎样的操作?答案:1)5-(-5)=10,因此系统中的相关进程至少执行了10个P(S)操作。因为每执行一次P(S)操作就会将信号量S减去1。2)与信号量S相关的处于阻塞状态的进程有

2、-5

3、=5个。3)为使信号量S的值大于0,应当有至少6个执行了P(S)但还没来得及执行V(S)的进程去执行V(S)操作。2.一售票厅只能容纳300人,当少于300人时,可以进入;否则,需在外等候。若将每一个购票者作为一个

4、进程,请用P、V操作编程,并写出信号量的初值。答案:设置信号量NUM表示售票厅当前还可以进入的人数,初值为300.购票者进程:do{P(NUM);进入售票厅;V(NUM);}While(1);3.桌上有一空盘,只允许存放一个水果。爸爸可向盘中放苹果,也可向盘中放桔子。儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘中空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。答案:设置三个信号量S、So、Sa,信号量S表示盘子是否为空,其初值为1;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。同步

5、描述如下:intS=1;intSa=0;intSo=0;main(){father();son();daughter();}father(){while(1){P(S);将水果放入盘中;if(放入的是桔子)V(So);elseV(Sa);}}son(){while(1){P(So);从盘中取出桔子;V(S);吃桔子;}}daughter(){while(1){P(Sa);从盘中取出苹果;V(S);吃苹果;}}4.下面是两个并发执行的进程。它们能正确执行吗?若不能,试改正之。CobeginVarx:integer;ProcessP1Vary,z:integer;Beg

6、inx:=1;y:=0;Ifx≥1theny:=y+1;z:=y;End;ProcessP2Vart,u:integer;Beginx:=0;t:=0;Ifx<1thent:=t+2;u:=t;End;Coend答案:改正后的代码cobeginvarx:integer;S;semaphore;S:=1;ProcessP1Vary,z:integer;BeginP(S);x:=1;y:=0;Ifx≥1theny:=y+1;V(S);z:=y;endProcessP2vart,u:integer;beginP(S);x:=0;t:=0;Ifx<1thent:=t+2;V

7、(S);u:=t;EndCoend书上:3(6)有k个进程共享一临界区,说明信号的初值及含义,用P、V操作写出互斥算法1)一次只允许一个进程进入临界区。2)一次允许K个进程进入临界区。答案:1)设信号量M表示当前可进入临界区的进程数,初值为1.进程{…P(M);进入临界区;V(M);….}2)设信号量M表示当前可进入临界区的进程数,初值为K.进程{….P(M);进入临界区;V(M);…}或者:进程{…进入临界区;…}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。