操作系统-进程管理习题课.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程管理习题课 重点:用P、V原语实现同步与互斥 本章小结 本章小结 本章小结(续) 本章小结(续) 第一题 一、用P、V操作描述前趋关系。P1、P2、P3、P4、P5、P6为一组合作进程,其前趋图如图所示,试用P、V操作描述这6个进程的同步。 第二题 二、生产者-消费者问题 它描述了一组生产者向一组消费者提供产品,它们共享一个有界缓冲区,生产者向其中投放产品,消费者从中取得产品。生产者-消费者问题是许多相互合作进程的一种抽象。 我们把一个长度为n的有界缓冲区(n0)与一群生产者进程P1、P2、…、Pm和一群消费者进程C1、C2、…、Ck联系起来,如图所示。提取物品。 第二题(续) 假定这些生产者和消费者是互相等效的。只要缓冲区未满,生产者就可以把产品送入缓冲区,类似地,只要缓冲区未空,消费者便可以从缓冲区中取走物品并消耗它。生产者和消费者的同步关系将禁止生产者向满的缓冲区输送产品,也禁止消费者从空的缓冲区中 第三题(选择) 三、在操作系统中,进程是一个具有一定独立功能的程序在某个数据集上的一次 __________。 A.等待活动 B.运行活动 C.单独操作 D.关联操作 答:B 第四题(选择) 四、多道程序环境下,操作系统分配资源以_______为基本单位。 A.程序 B.指令 C进程 D.作业 答:C 第五题(选择) 五、对于两个并发进程,设互斥信号量为mutex,若mutex=O,则_____。 A.表示没有进程进入临界区 B.表示有一个进程进入临界区 C.表示有一个进程进入临界区,另一个进程等待进入 D.表示有两个进程进入临界区 答:B 第六题(选择) 六、两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的____。 A.同步 B.互斥 C. 调度 D.执行 答:A 第七题(选择) 七、为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为______。 A.进程互斥 B.进程同步 C .进程制约 D.进程通信 答:D 第八题 八、在测量控制系统中,数据采集任务把所采集的数据送入一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。 分析 [分析及相关知识] 在本题中采集任务与计算任务共用一个单缓冲区.当采集 任务采集到一个数据后,只有当缓冲区为空时才能将数据送入缓冲区中存放,否则应等待缓冲区腾空;当缓冲区中有数据时,计算任务才能从缓冲区中取出数据进行计算,否则也应等待。 答案 int Se=l; int Sf=0; main() { cobegin get(); compute(); coend } get() { while (采集工作未完成) { 采集一个数据: p(Se); 将数据送入缓冲区中; v(Sf); } } compute() { while(计算工作未完成) { p(Sf); 从缓冲区中取出数据; v(Se); 进行数据计算; } } 第九题 九、下图给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关系,并用P、V操作描述它。 第十题 十、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。P37 分析 [分析及相关知识] 在本题中,爸爸、儿子、女儿共用一个盘子,且盘中一次只能放一个水果.当盘子为空时,爸爸可将一个水果放入果盘中。若放入果盘中的是桔子,则允许儿子吃,女儿必须等待;若放入果盘中的是苹果,则允许女儿吃,儿子必须等待。 本题实际上是生产者—消费者问题的一种变形。这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。 答案 int S=1; int Sa=0; int So=0; main( ) { cobegin father(); son(); daughter(): coend } father()

文档评论(0)

cai + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档