- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统
6 并发程序设计–6.4 管程
6.4.1 管程概述
管程概念的提出
管程试图抽象相关并发进程对共享变量
访问,以提供一个友善的并发程序设计
开发环境
管程是由若干公共变量及其说明和所有
访问这些变量的过程所组成
管程把分散在各个进程中互斥地访问公
共变量的那些临界区集中起来管理,管
程的局部变量只能由该管程的过程存取
进程只能互斥地调用管程中的过程
管程的基本形式
TYPE 管程名 = MONITOR
管程变量说明 ;
define (能被其他模块引用的)过程名列表 ;
use (要引用的模块外定义的)过程名列表 ;
procedure 过程名(形式参数表) ;
begin
过程体 ;
end ;
……
procedure 过程名(形式参数表) ;
begin
过程体 ;
end ;
begin
管程的局部数据初始化语句 ;
end ;
管程的条件变量
条件变量(condition variables ):当调
用管程过程的进程无法运行时,用于阻塞
进程的信号量
同步原语wait :当一个管程过程发现无法
继续时(如发现没有可用资源时),它在
某些条件变量上执行wait ,这个动作引起
调用进程阻塞
同步原语signal:用于释放在条件变量上
阻塞的进程
管程的执行模型互斥调用管 等待调用
程过程队列 进程队列
管程等待区域 入口
管程
condition c1
条件变量队列
局部数据
wait(c 1)
条件变量
…
过程1
condition cn
条件变量队列
wait(cn)
过程n
Urgent queue
互斥调用管程过
程高优先级队列
signal 变量初始化代码
出口
管程过程执行中signal的处理问题
当使用signal释放一个等待进程时,可能出
现两个进程同时停留在管程内。解决方法:
执行signal的进程等待,直到被释放进程
退出管程或等待另一个条件
被释放进程等待,直到执行signal的进程
退出管程或等待另一个条件
霍尔采用了第一种办法
汉森选择了两者的折衷,规定管程过程所执
行
您可能关注的文档
最近下载
- 非ST段抬高型急性冠脉综合征诊断和治疗指南(2024)解读.pptx VIP
- 电器理论基础(福州大学)中国大学MOOC慕课 章节测验期末考试答案.pdf VIP
- 高工答辩重点题库.pdf VIP
- 七上19《大雁归来》课件.pptx VIP
- 多发伤护理查房(完整版).pptx VIP
- 非ST段抬高型急性冠脉综合征诊断和治疗指南(2024)解读.pptx VIP
- Zippo2018美版年册完整集合.doc VIP
- 统编六年级上册习作《有你,真好》教学设计.docx VIP
- 部编版六年级语文上册第八单元习作:有你,真好【精品教学课件】.pptx VIP
- 高考地理微专题:港珠澳大桥(共31张PPT).pptx VIP
本人专注于k12教育,英语四级考试培训,本人是大学本科计算机专业毕业生,专注软件工程计算机专业,也可承接计算机专业的C语言程序设计,Java开发,Python程序开发。
原创力文档


文档评论(0)