操作系统概念进程小结.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文档。上传文档
查看更多
问题4:临界区 处于临界区中的进程是不可中断的(?) 错。进程进入临界区,标明进程正在访问某个临界资源,即不允许其他进程进入访问同一临界资源的临界区。但该进程在临界资源的访问过程中,如正在使用打印机,此时,它可能由于等待打印的完成而处于阻塞状态,因此系统可以调度另一个进程执行,也就是说,处于临界区的进程是可以中断的。 问题5:临界区 为什么进程进入临界区之前应先执行“进去区”代码,在退出临界区后又执行“退出区”代码? repeat 进入区;  临界区;  退出区;  剩余区; until false; 问题6:信号量机制 一阅览室有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一条目,包括座位号和读者姓名。读者离开时要注销登记内容,试用P、V操作描述读者进程的同步结构。 思路1:这是同步还是互斥?或者2者都是? 思路2:需要哪些公有、私有信号量? 公有信号量:mutex、S Mutex := 1; S := 100; Process Reader Begin P(S); 查找空表目 P(mutex);申请登记 填入信息; V(mutex); 允许其他读者填写登记表 阅读 P(mutex); 删除信息; V(mutex); V(S); End; 设有4个进程A、B、C、D共享一个缓冲区,进程A负责循环地从文件读一个整数并放入缓冲区,进程B从缓冲区循环读入MOD 3为0的整数并累计求和;C从缓冲区循环地读入MOD 3为1的整数并累计求和;D从缓冲区中循环地读入MOD 3为2的整数并累计求和。请用P、V操作写出能够正确执行的程序。 缓冲区 num A D C B num MOD 3 = 0 num MOD 3 = 1 num MOD 3 = 2 所需同步信号量:Sempty :=1 、SB、SC、SD := 0 Process PA Begin P(Sempty); 读入num至缓冲区 if(num MOD 3 = 0) V(SB); if(num MOD 3 = 1) V(SC); else V(SD); end Process PB Begin P(SB); 从缓冲区读入num并累计求和 V(Sempty); end Process PC Begin P(SC); 从缓冲区读入num并累计求和 V(Sempty); end Process PD Begin P(SD); 从缓冲区读入num并累计求和 V(Sempty); end 问题7: 设有一个可以装A、B两种物品的仓库,其容量无限大,但要求仓库中A、B两种物品的数量满足下述不等式: -M≤A物品数量-B物品数量≤N 其中M和N为正整数。 试用信号量和PV操作描述A、B两种物品的入库过程。 semaphore a=n; semaphore b=m; A物品入库: process A() { while(1){ P(a); A物品入库; V(b); } } B物品入库: process B() { while(1){ P(b); B物品入库; V(a); } } 某寺庙,有小和尚、老和尚若干.庙内有一水缸,由小和尚提水入缸,供老和尚饮用。水缸可容纳 30 桶水,每次入水、取水仅为1桶,不可同时进行。水取自同一井中,水井径窄,每次只能容纳一个水桶取水。设水桶个数为5个,试用信号灯和PV操作给出老和尚和小和尚的活动。 问题8: semaphore empty=30; // 表示缸中目前还能装多少桶水,初始时能装30桶水 semaphore full=0; // 表示缸中有多少桶水,初始时缸中没有水 semaphore buckets=5; // 表示有多少只空桶可用,初始时有5只桶可用 semaphore mutex_well=1; // 用于实现对井的互斥操作 semaphore mutex_bigjar=1; // 用于实现对缸的互斥操作 young_monk(){ while(1){ P(empty); P(buckets); go to the well; P(mutex_well); get water; V(mutex_well); go to the temple; P(mutex_bigjar); pure the water into the big jar; V(mute

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档