收藏 分享(赏)

进程同步互斥练习.doc

上传人:tkhy51908 文档编号:7673768 上传时间:2019-05-23 格式:DOC 页数:2 大小:37.50KB
下载 相关 举报
进程同步互斥练习.doc_第1页
第1页 / 共2页
进程同步互斥练习.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、1.如果信号量的初值是,现在信号量的值是-,那么系统中的相关进程至少执行了几个(S)操作?与信号量 S 相关的处于阻塞状态的进程有几个?为使信号量 S 的值大于 0,应进行怎样的操作? 答 案 :1) 5-(-5)=10, 因 此 系统中的相关进程至少执行了 10 个(S)操作。因 为 每 执 行 一 次 P(S)操 作 就 会将 信 号 量 S 减 去 1。2)与信号量 S 相关的处于阻塞状态的进程有|-5|=5 个。3)为使信号量 S 的值大于 0,应当有至少 6 个执行了 P(S)但还没来得及执行 V(S)的进程去执行 V(S)操作。2.一售票厅只能容纳 300 人,当少于 300 人时

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

3、值为 0;信号量 Sa 表示盘中是否有苹果,其初值为 0。同步描述如下:int S=1; int Sa=0; int So=0;main( ) father();son();daughter();father() while(1) P(S );将水果放入盘中;if (放入的是桔子) V(So);else V(Sa);son( )while(1)P(So);从盘中取出桔子;V(S);吃桔子; daughter( ) while(1)P(Sa);从盘中取出苹果;V(S);吃苹果;4.下面是两个并发执行的进程。它们能正确执行吗?若不能,试改正之。CobeginVar x: integer;Proce

4、ss P1Var y, z:integer;Begin x:=1;y:=0;If x1 then y:=y+1;z:=y;End;Process P2Var t,u:integer;Beginx:=0;t:=0;If x1 then t:=t+2;u:=t;End;Coend答案:改正后的代码cobeginvar x:integer;S;semaphore;S:=1;Process P1Var y,z:integer;Begin P(S);x:=1;y:=0;If x1 then y:=y+1;V(S);z:=y;endProcess P2var t,u:integer;beginP(S);x:=0;t:=0;If x1 then t:=t+2;V(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);或者:进程进入临界区;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报