- 1、本文档共92页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 进程间的制约关系 在多道程序设计环境下,一方面,系统中有若干个作业同时执行,每一个作业又可能需要多个进程协同工作;另一方面,这些进程使用系统中的各种资源,而资源个数往往少于进程数,从而导致对系统资源的竞争。于是,系统中的所有进程,相互之间必定存在着这样那样的关系。这些关系势必影响到进程执行的速度快慢,影响到进程执行的顺利与否,甚至会影响到进程执行结果的正确性。由于进程间的制约关系,程序执行的结果失去了“再现性”:在相同条件下,这一次的执行结果,可能与下一次的执行结果不同(见第2章对图2-2的解释),这就是所谓的“与时间有关的错误”。 进程之间存在着哪些制约关系,它们是如何产生的,怎样处理这些关系,才能确保进程执行的正确性,这些是本章要解决的主要问题。 本章将引入操作系统中的重要概念:信号量以及在信号量上的P、V操作。利用信号量以及在信号量上的P、V操作,可以很好地解决进程间的互斥与同步关系,保证进程程序的正确执行。 本章着重讲述四个方面的内容。 (1)进程间的两种制约关系——互斥与同步。 (2)正确处理互斥与同步的方法——信号量以及在信号量上的P、V操作。 (3)死锁以及解决死锁的途径。 (4)进程间的高级通信。 6.1 进程间的制约关系 6.2 信号量与P、V操作 6.3 死锁、高级进程通信 6.1 进程间的制约关系 6.1.1 与时间有关的错误 在第2章中,是通过图2-2所给出的例子,来说明在多道程序设计环境下,程序执行时“结果的再现性”被打破了。这就是说,在相同的前提条件下,两次执行的结果有可能不相同。这是因为在多道程序设计环境下,进程程序的执行具有并发性。 进程的“并发”,使得一个进程何时占有处理机、占有处理机时间的长短、执行速度的快慢以及外界对进程何时产生作用等都带有随机性,使得一个进程对另一个进程的影响无法预测。在操作系统里,把这种由于时间因素的影响而产生的错误,称为“与时间有关的错误”。下面,再来看几个这方面的例子。 在讲虚拟设备时曾涉及到输出井等概念。现在假定是这样进行管理的:为输出井设置一张“输出井文件目录表”,它由若干个目录项组成,每个目录项记录一个要打印输出的文件名以及该文件在磁盘的存放地址。为了管理该目录表,系统安排两个指针:out和in。“缓输出程序”根据out的指点进行打印,out总是指向下一个被打印的文件;井管理写程序根据in的指点存放要求输出的文件目录信息,in总是指向下一个可用的目录项位置,如图6-1所示。 如果现在进程A要求打印自己名为“games”的文件。为此调用“井管理写”程序。在做了一些准备工作后,它读出in中当前的内容为7。若恰在此时,系统分配给进程A的时间片到时,调度进程B运行。假定现在进程B要求打印输出自己的文件“mail”,于是也去调用“井管理写”程序。在做了一些准备工作后,它读取in中的内容。此时,in中的值没有改变,同样得到的值为7。于是把它的文件“mail”存入输出井文件目录表中的第7个表目,并且把in更新为8,然后继续做其他的操作。 调度程序再次调度进程A运行,从断点往下执行。由于它已读过in中的内容是7,就把文件“games” 存入输出井文件目录表中的第7个表目,把原来里面进程B的文件名删去,并且把in更新为9(因为进程B已经把in改为8了),然后继续做其他的操作。 这样一来,进程B要输出的文件信息荡然无存,它永远也得不到任何打印输出。另外,输出井文件目录表的表目8被跳过去了,它的里面没有记录下任何要输出的文件信息。 再来看一个例子。编写一个复制n个记录的程序,它把文件F中的每一个记录依次先读到输入缓冲区R,再从R拷贝到输出缓冲区T,最后写到文件G中。假定R和T的大小正好存放一个记录,如图6-2所示。 可以编写三个子程序来完成这一工作。 ? GET:负责从文件F中按照顺序读出一个记录,然后送入输入缓冲区R。 ? COPY:负责把输入缓冲区R中的记录拷贝到输出缓冲区T中。 ? PUT:负责从输出缓冲区T中读出一个记录,然后依照顺序写入文件G。 用Gi、Ci、Pi分别表示读出、拷贝、写入第i个记录的操作。如果这3个程序的工作顺序是: G1→C1→P1→G2→C2→P2→…→Gi→Ci→Pi→…→Gn→Cn→Pn 也就是先由GET从F读第1个记录到R,接着由COPY把它拷贝到T,再由PUT取出并写到G的第1个记录。接着,GET从F读第2个记录到R,接着由COPY把它拷贝到T,再由PUT取出并写到G的第2个记录。如此循环,直到GET从F读第n个记录到R,接着由COPY把它拷贝到T,再由PUT取出并写到G的第n个记录为止。这样的执行序列,绝对保证拷贝的正确性。但
您可能关注的文档
- 财务管理 教学课件 作者 陈金龙 李四能 第4章.ppt
- 常用办公设备使用与维护 教学课件 作者 李林孖 2.ppt
- 成品——3ds MaxAfter Effects影视广告设计与制作全流程剖析 教学课件 作者 王志新、朱虹、王妍 演示文稿02.ppt
- 彩色电视机原理与维修—高职电子信息—刘俊起王俊 第10章 遥控系统的原理与维修.ppt
- 财务管理 教学课件 作者 陈金龙 李四能 第5章.ppt
- 常用办公设备使用与维护 教学课件 作者 李林孖 3.ppt
- 财务管理 教学课件 作者 陈金龙 李四能 第6章.ppt
- 常用办公设备使用与维护 教学课件 作者 李林孖 4.ppt
- 财务管理 教学课件 作者 陈金龙 李四能 第7章 资本预算.ppt
- 常用办公设备使用与维护 教学课件 作者 李林孖 5.ppt
- 仓储管理实务( 第二版) 仓储管理实务教学大纲.doc
- 常用工具软件 教学课件 作者 邹祖银 康志亮 宋勤 第2章 系统工具.ppt
- 城市轨道交通客运组织 教学课件 作者 裴瑞江 项目八.ppt
- 仓储管理实务( 第二版) 仓储管理之导入模块.ppt
- 操作系统 教学课件 作者 宗大华 宗涛 第七章.ppt
- 常用工具软件 教学课件 作者 邹祖银 康志亮 宋勤 第3章 磁盘工具.ppt
- 城市轨道交通客运组织 教学课件 作者 裴瑞江 项目二.ppt
- 仓储管理实务( 第二版) 仓储管理之项目二商品在库作业管理.ppt
- 操作系统 教学课件 作者 宗大华 宗涛 第三章.ppt
- 常用工具软件 教学课件 作者 邹祖银 康志亮 宋勤 第4章 光盘工具.ppt
文档评论(0)