2.5 管程.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文档。上传文档
查看更多
2.5 管程

2.5 管程 管程和条件变量 霍尔方法实现管程 汉森方法实现管程 1. 管程的提出 采用P-V同步机制来编写并发程序,对于共享变量及信号量变量的操作将被分散于各个进程中 缺点: (1)易读性差,因为要了解对于一组共享变量及信号量的操作是否正确,则必须通读整个系统或者并发程序 (2)不利于修改和维护,因为程序的局部性很差,所以任一组变量或一段代码的修改都可能影响全局 (3)正确性难以保证,因为操作系统或并发程序通常很大,要保证这样一个复杂的系统没有逻辑错误是很难的 2.5.1.1什么是管程?(1) 为什么要引入管程 把分散在各进程中的临界区集中起来进行管理 ; 防止进程有意或无意的违法同步操作, 便于用高级语言来书写程序,也便于程序正确性验证。 什么是管程?(2) 管程是由局部于自己的若干公共变量及其说明和所有访问这些公共变量的过程所组成的软件模块 管程有以下属性 ?共享性: ?安全性: ?互斥性: 管程的基本形式 TYPE 管程名 = MONITOR 管程变量说明; define (能被其他模块引用的)过程名列表; use (要引用的模块外定义的)过程名列表; procedure 过程名(形式参数表); begin 过程体; end; …… procedure 过程名(形式参数表); begin 过程体; end; begin 管程的局部数据初始化语句; end; 管程的结构 管程的示例 TYPE SSU = MONITOR var busy : boolean; nobusy : condition; define require, return; use wait, signal; procedure require; begin if busy then wait(nobusy); /*调用进程加入等待队列*/ busy := ture; end; procedure return; begin busy := false; signal(nobusy); /*从等待队列中释放进程*/ end; begin /*管程变量初始化*/ busy := false; end; 管程的条件变量(1) 条件变量:当调用管程过程的进程无法运行时,用于阻塞进程的一种信号量 同步原语wait:当一个管程过程发现无法继续时,它在某些条件变量condition上执行wait,这个动作引起调用进程阻塞 管程的条件变量(2) 另一个进程可以通过对其伙伴在等待的同一个条件变量condition上执行同步原语signal操作来唤醒等待进程。 条件变量与P、V操作中信号量的区别? 管程的问题讨论(1) 使用signal释放等待进程时,可能出现两个进程同时停留在管程内。解决方法: 执行signal的进程等待,直到被释放进程退出管程或等待另一个条件 被释放进程等待,直到执行signal的进程退出管程或等待另一个条件 管程的问题讨论(2) 霍尔采用了第一种办法 汉森选择了两者的折衷,规定管程中的过程所执行的signal操作是过程体的最后一个操作 管程与进程作比较(1) ?管程定义的是公用数据结构,而进程定义的是私有数据结构; ?管程把共享变量上的同步操作集中起来,而临界区却分散在每个进程中; ?管程是为管理共享资源而建立的,进程主要是为占有系统资源和实现系统并发性而引入的; 管程与进程作比较(2) ?管程是被欲使用共享资源的进程所调用的,管程和调用它的进程不能并行工作,而进程之间能并行工作,并发性是其固有特性; ?管程是语言或操作系统的成分,不必创建或撤销,而进程有生命周期,由创建而产生至撤销便消亡。 2.6 进程通信(communication) 进程通信:指进程间的信息交换。 按通信内容可以划分为2种 低级通信:进程之间控制信息的交换称为低级通信。 一般只传送一个和几个字节的信息,达到控 制进程执行速度的作用。(进程的同步和互斥) 信号量机制作为同步工具是卓有成效的,但作为通讯工具则不够理想,(?效率低。?通讯对用户不透明。) 高级通信:用户可以直接利用操作系统所提供的一组通信命令,高效地传送大量数据的一种通信方式。 进程间通信的类型 信号(signal)通信机制; 共享存储器系统(shared

文档评论(0)

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

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

1亿VIP精品文档

相关文档