- 1、本文档共113页,可阅读全部内容。
- 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章 进程间的制约关系 6.1 进程间的制约关系 6.2 信号量与P、V操作 6.3 死锁、高级进程通信 本章将引入操作系统中的重要概念:信号量以及在信号量上的P、V操作。利用信号量以及在信号量上的P、V操作,可以很好地解决进程间的互斥与同步关系,保证进程程序的正确执行。 本章着重讲述四个方面的内容: (1)进程间的两种制约关系——互斥与同步。 (2)正确处理互斥与同步的方法——信号量以及在信号量上的P、V操作。 (3)死锁以及解决死锁的途径。 (4)进程间的高级通信。 6.1 进程间的制约关系 6.1.1 与时间有关的错误 在相同的前提条件下,两次执行的结果有可能不相同。在操作系统里,把这种由于时间因素的影响而产生的错误,称为“与时间有关的错误”。 6.1.2 竞争资源—互斥 在操作系统中,凡是牵扯到数据、队列、缓冲区、表格和变量等任何形式的共享资源时,都很容易出现类似的这种“与时间有关的错误”。 为了避免错误的发生,关键是要找到一种途径,来阻止多于一个进程同时使用它们。也就是说,保证对它们的使用是互斥进行的。 与一个共享变量(或临界资源)交往的多个进程,为了保证它们各自运行结果的正确性,当其中的一个进程正在对该变量(或临界资源)进行操作时,就不允许其他进程同时对它进行操作。进程间的这种制约关系被称为“互斥”。 对具有互斥关系的进程,要注意以下四点。 (1)只有涉及共享变量的那一部分程序,才真正需要保证互斥地执行。通常,把进程程序中“真正需要保证互斥执行”的那一段程序,称为该进程的“临界区(或临界段)”。 (2)具有互斥关系的进程,并不关心对方的存在性。即使对方不存在,自己也能够正确的运行,不会受到它存在与否的影响。 (3)具有互斥关系进程的临界区,虽然都是针对同一个共享变量的程序段,但在其上的操作可以相同也可以不相同。 (4)进程的临界区是相对于某个共享变量而言的,不同共享变量的临界区之间,不存在互斥关系。 如何来保证进程在临界区执行的互斥性,要解决这个问题,必须遵循以下准则。 (1)如果有若干个进程要求进入自己的临界区,那么它们不应互相排斥,致使谁也进不了临界区。 (2)每次只允许一个进程进入临界区。 (3)一个进程在临界区内逗留有限时间后,就应该退出,以便给其他进程创造进入临界区的机会。 6.1.3 协同工作—同步 这里所描述的进程间的关系有如下特点。 (1)具有这种关系的进程,需要在某些点上协调相互的动作,谁先到达谁后到达是有顺序要求的。 (2)这些进程都应该了解对方的工作,对方不存在,或任何一方单独运行,就会出现差错。 (3)一方或双方的运行会直接地依赖于对方所产生的信息或发出的消息。 一个进程运行到某一点时,除非合作进程已经完成了某种操作或发来了信息,否则就必须暂时等待那些操作的完成或信息的到来。 进程间的这种关系被称为“同步”。暂停等待以取得同步的那一点,称为“同步点”,需要等待一个进程完成的操作或发送的信息,称为“同步条件”。 6.2 信号量与P、V操作 通过信号量取不同的初值以及在其上做P、V操作,就能够实现进程间的互斥、同步,甚至用来管理资源的分配。 6.2.1 信号量与P、V操作的定义 所谓“信号量”,是一个具有非负初值的整型变量,并且有一个队列与它关联。 在一个信号量S上,只能做规定的两种操作:P操作,记为P(S);和V操作,记为V(S)。P、V操作的具体定义如下。 (1)信号量S上的P操作定义。 当一个进程调用P(S)时,应该顺序做下面不可分割的两个动作。 ? Vs?=?Vs???1,即把当前信号量S的取值减1。 ? 若Vs?=?0,则调用进程继续运行;若Vs0,则调用进程由运行状态变为阻塞状态,到与该信号量有关的队列Vq上排队等待,直到其他进程在S上执行V操作将其释放为止。 (2)信号量S上的V操作定义。 当一个进程调用V(S)时,应该顺序做下面不可分割的两个动作。 ? Vs?=?Vs?+?1,即把当前信号量S的取值加1。 ? 若Vs??0,则调用进程继续运行;若Vs=?0,则先从与该信号量有关的队列Vq上摘下一个等待进程,让它从阻塞状态变为就绪状态,到就绪队列里排队,然后调用进程继续运行。 6.2.2 用P、V操作实现互斥 设置一个初值为1的信号量S,在进程A和B的进入点处安排关于信号量S的P操作,在进程A和B的退出点处安排关于信号量S的V操作。这样,就能够确保CSa和CSb互斥地执行。 例6-1 在第2章的图2-2中,给出了一个“观察者-报告者”的
您可能关注的文档
- 财经法规与会计职业道德 工业和信息化高职高专“十二五”规划教材立项项目 配套习题 作者 郝福锦 王礼红财经法规练习 第三章练习答案部分.doc
- 测量学( 第二版) 教学课件 作者 武汉大学杨正尧 主编 第十五章 建筑物的变形观测.ppt
- 财经法规与会计职业道德 工业和信息化高职高专“十二五”规划教材立项项目 配套习题 作者 郝福锦 王礼红财经法规练习 第四章练习答案部分.doc
- 彩色电视机原理与维修 教学课件 作者 李怀甫第3章 第3.3讲.ppt
- 测量学( 第二版) 教学课件 作者 武汉大学杨正尧 主编 第十一章 线路测量.ppt
- 财经法规与会计职业道德 工业和信息化高职高专“十二五”规划教材立项项目 配套习题 作者 郝福锦 王礼红财经法规练习 第五章练习答案部分.doc
- 成本会计 教学课件 作者张艳 成本会计第八章.ppt
- 测量学( 第二版) 教学课件 作者 武汉大学杨正尧 主编 第十章 施工测量基本工作.ppt
- 财经法规与会计职业道德 工业和信息化高职高专“十二五”规划教材立项项目 配套习题 作者 郝福锦 王礼红财经法规练习 第一章练习答案部分.doc
- 成本会计 教学课件 作者张艳 成本会计第二章.ppt
- 财务管理 教学课件 作者 杭瑞友 主编 李春献付彬 副主编 韩建明 主审 财务管理综合自测模拟试卷.doc
- 操作系统 第二版 教学课件 作者 宗大华 肖霞 宗涛 14681 第7章.ppt
- 城市轨道交通车辆检修 教学课件 作者 阳东 卢桂云 项目五 任务四教案.doc
- 操作系统 第二版 教学课件 作者 宗大华 肖霞 宗涛 14681 第8章.ppt
- 城市轨道交通车辆检修 教学课件 作者 阳东 卢桂云 项目五 任务五教案.doc
- 仓储管理 第2版 教学课件 作者 孙明贺 综合知识模块二.ppt
- 城市轨道交通车辆检修 教学课件 作者 阳东 卢桂云 项目五 任务一教案.doc
- 操作系统 第二版 教学课件 作者 宗大华 肖霞 宗涛 14681 第9章.ppt
- 城市轨道交通车辆检修 教学课件 作者 阳东 卢桂云 项目一 任务二教案.doc
- 仓储管理 第2版 教学课件 作者 孙明贺 综合知识模块六.ppt
文档评论(0)