2016第四章互斥同步与通讯.pptVIP

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
进程间相互作用 进程间的联系 进程的同步机制——信号量及P.V操作(解决进程同步、互斥问题) 进程间的联系 相交进程与无关进程 相交进程:指多个并发进程在逻辑上有某种联系。 无关进程(不相交进程):在逻辑上无任何联系。 进程间的联系 直接作用和间接作用 直接作用:进程间的相互联系是有意识的安排的,直接作用只发生在相交进程间。 间接作用:进程间要通过某种中介发生联系,是无意识的安排的,可发生在相交进程之间,也可发生在无关进程之间。 进程间的联系:竞争与协作 4.3 进程同步(直接作用) 进程同步:synchronism 指系统中的多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪状态。 例: 司机的活动:P1 while(true) { ——① 启动车辆; 正常行车; 到站停车; ——④ } 售票员的活动:P2 while(true) { 关门; ——② 售票; ——③ 开车门; } 4.2 进程互斥(间接作用) 进程互斥:mutual exclusion 由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。 临界资源:critical resource 系统中的某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量。 4.1.2 顺序程序及其特征 程序的顺序执行是指CPU严格按照程序的指令顺序执行。 这种要求实际上在现代计算机系统中不可能实现。只有在单用户系统无中断机构的情况下,程序顺序执行才有可能。 串行工作 顺序程序的特征 顺序性:一条执行的执行应该在它前一条指令结束后开始;一条执行的执行以它的前一条指令执行的结果为前提。 封闭性:程序执行时得到的最终结果有给定的初始条件决定,不受外界因素的影响。只有程序本身才能改变,决定于程序的运行环境。 结果的确定性:顺序执行的最终结果与他的执行速度无关。 可再现性:只要输入的初始条件相同,则无论什么时候重复执行,程序都会得到相同的结果。 例: 同学甲 . . . if 有空椅子 then 坐下; . . . 同学乙 . . . if 有空椅子 then 搬走; . . . 4.1.3 并发程序及其特征 共享性 并发性 随机性 4.1.6 与时间有关的错误 对于一组并发进程,执行的相对速度无法相互控制,各种与时间有关的错误就可能出现。 与时间有关错误的表现形式: 结果不唯一 永远等待 例1:民航售票 A进程: . . . if x0 then x:=x-1; . . . B进程: . . . if x0 then x:=x-1; . . . 例2:交通流量统计 中断处理程序: . . . s:=s+1; . . . s:=0; Delay(600); write(s); 例3:存储管理 分配进程(B): . . . if x﹤B then 等待; x:=x-B; . . . 回收进程(B): . . . x:=x+B; 唤醒; . . . 例4:哲学家就餐问题 思考 if 饿 then begin 拿左叉子; 拿右叉子; 吃饭; 放左叉子; 放右叉子; end; 4.2.1 共享变量和临界区 临界区(互斥区) 一个程序片段的集合,这些程序片段分散在不同的进程中,对某个共享的数据结构(共享资源)进行操作。 在进程中涉及到临界资源的程序段叫临界区。 多个进程的临界区称为相关临界区。 使用临界区的原则 有空让进:当无进程在临界区时,任何有权使用临界区的进程可进入。 无空等待:不允许两个以上的进程同时进入临界区。 多中选一:当没有进程在临界区,而同时有多个进程要求进入临界区,只能让其中之一进入临界区,其它进程必须等待。 有限等待:任何进入临界区的要求应在有限的时间内得到满足。 让权等待:处于等待状态的进程应放弃占用CPU,以使其它进程有机会得到CPU使用权。 4.2 进程互斥 使用临界区的前提: 任何进程无权停止其它进程; 进程之间相对运行速度无硬件规定。 解决进程互斥有两种方法: 由竞争各方平等协商; 引入进程管理者,由管理者来协调竞争各方对互斥资源的使用。 具体方法 硬件:当一个进程进入临界区,就屏蔽所有中断,但成本高。 软件:用编程解决,但常常忙等待 4.2.3.1 进程互斥的软件实现 通过平等协商方式实现进程互斥的最初方法就是软件方法。 其基本思想就是在进入区检查和设置一

文档评论(0)

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

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

1亿VIP精品文档

相关文档