- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 (放入的是桔子)
您可能关注的文档
最近下载
- 管材安装合同范本(12篇).docx VIP
- 滇人版 七年级 第九册 第10课 文件合并与超链接课件.pptx VIP
- 古镇商业运营与旅游开发思路.pptx VIP
- 02S515排水检查井图集.pdf VIP
- 标准图集-23S519-小型排水构筑物.pdf VIP
- 形考作业(五)配置DNS服务实训.docx VIP
- 高钾血症应急演练脚本.docx VIP
- xx河防洪治理工程施工组织设计.doc VIP
- 新解读《GB_T 17934.3-2021印刷技术 网目调分色版、样张和生产印刷品的加工过程控制 第3部分:新闻纸冷固型平版胶印》最新解读.pptx VIP
- 简式数控车床使用说明书(中英文).pdf VIP
原创力文档


文档评论(0)