P、V原语操作几道习题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
P、V原语操作几道习题.ppt

一个多任务单处理机系统,PCB表的规模是100行,则任一时刻,最多有( )个进程处于运行态,最多可能有( )个进程处于就绪态,最多可能( )有个进程处于等待态。 有四个同类资源组成的系统,有三个进程共享这些资源,每个进程至多需要二个资源,是否会发生死锁? 设系统中有N(N=3)个进程,考虑下面情况: 没有运行进程,没有就绪进程,N个进程处于等待状态。 没有运行进程,有一个就绪进程,N-1个进程处于等待状态。 有一个运行进程,没有就绪进程,N-1个进程处于等待状态。 有一个运行进程,一个就绪进程,N-2个进程处于等待状态。 有一个运行进程,N-1个就绪进程,没有任何进程处于等待状态。 习题1 有3个进程PA,PB和PC合作解决文件打印问题: PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录; PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录; PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录大小。 请用P,V操作来保证文件的正确打印。 缓冲区1 缓冲区2 PA 从磁盘读入 PB 复制 PC 打印 设置4个信号量:empty1,empty2,full1,full2. empty1及empty2分别表示缓冲区1及缓冲区2是否为空,初值为1。 full1,full2分别表示缓冲区1及缓冲区2是否有记录可供处理,其初值为0。 习题1 PC() { While (1) { P(full2); 从缓冲区2 取一个记录; V(empty2); 打印记录; } } PA() { While (1) { 从磁盘读一 个记录; P(empty1); 将记录存入 缓冲区1; V(full1); } } PB() { While (1) { P(full1); 从缓冲区1中 取出记录; V (empty1); P(empty2); 将记录存入缓 冲区2; V(full2); } } Int empty1=1; empty2=1;full1=0;full2=0; Main() { Cobegin PA();PB();PC(); Coend } 公共汽车上,司机和售票员的活动分别为: 司机的活动: 启动车辆; 正常行驶, 到站停车 售票员的活动: 关车门; 售票; 开车门; 习题2 司机 P1 售票员 P2 REPEAT REPEAT 启动 关门 正常运行 售票 到站停 开门 UNTIL FALSE UNTIL FALSE 司机启动车辆的动作必须于售票员关车门的动作取得同步,售票员开车门的动作也必须与司机停车取得同步。 设信号量S1:是否允许司机启动汽车,初值为0 S2:是否允许售票员开门,初值为0 Driver() { While (1) { P(S1); 启动汽车 正常行车; 到站停车; V(S2); } } Busman(){ { While (1) { 关车门; V(S1); 售票 P(S2); 开车门; 上下乘客; } } Int s1=0; Int s2=0; Main( ){ { Cobegin Driver(); Busman(); Coend } 习题3 桌上有一空盘,允许存放一只水果。爸爸 可向盘中放苹果,也可向盘中放桔子,儿 子专等吃盘中的桔子,女儿专等吃盘中的 苹果。规定当盘空时一次只能放一只水果 供吃者取用,请用P,V原语实现爸爸,儿 子女儿三个进程的同步。 设三个信号量, S:表示盘子是否为空,初值为1 So:表示盘中是否有桔子,初值为0 Sa:表示盘中是否有苹果,初值为0; int s=1;int sa=0;int so=0; main(){ cobegin father(); son(); daughter(); coend } father() { While (1) { P(s); 将水果放入盘中; if (放入的是桔子)

文档评论(0)

克拉钻 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档