- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
3.4管程3.4.1管程和条件变量3.4.2管程的实现3.4.3管程解决进程同步问题3.4.1管程和条件变量
为什么要引入管程?把分散在各进程中的临界区集中起来进行管理;防止进程有意或无意的违法同步操作,便于用高级语言来书写程序,也便于程序正确性验证。管程定义和属性管程的定义管程是由局部于自己的若干公共变量及其说明和所有访问这些公共变量的过程所组成的软件模块。管程的属性?共享性:?安全性:?互斥性:管程的形式type管程名=monitor{局部变量说明;条件变量说明;初始化语句;define管程内定义的,管程外可调用的过程或函数名列表;use管程外定义的,管程内将调用的过程或函数名列表;过程名/函数名(形式参数表){ 过程/函数体;}…过程名/函数名(形式参数表){ 过程/函数体;}}管程的结构…conditioncnwait(cn)局部数据条件变量过程1过程k出口初始化代码入口管程工作区等待调用过程的进程队列管程等待区…conditionc1wait(c1)nextqueuesignal管程的条件变量条件变量-是出现在管程内的一种数据结构,且只有在管程中才能被访问,它对管程内的所有过程是全局的,只能通过两个原语操作来控制它。wait()-挂起调用进程并释放管程,直到另一个进程在该条件变量上执行signal()。signal()-如果存在其他进程由于对条件变量执行wait()而被挂起,便释放之;如果没有进程在等待,那么,信号不被保存。条件变量与P、V操作中信号量的区别?管程问题讨论使用signal释放等待进程时,可能出现两个进程同时停留在管程内。解决方法:执行signal的进程等待,直到被释放进程退出管程或等待另一个条件被释放进程等待,直到执行signal的进程退出管程或等待另一个条件霍尔采用第一种办法,汉森选择两者的折衷,规定管程中的过程所执行的signal操作是过程体的最后一个操作。管程与进程作比较
?管程定义的是公用数据结构,而进程定义的是私有数据结构;?管程把共享变量上的同步操作集中起来,而临界区却分散在每个进程中;?管程是为管理共享资源而建立的,进程主要是为占有系统资源和实现系统并发性而引入的;?管程是被欲使用共享资源的进程所调用的,管程和调用它的进程不能并行工作,而进程之间能并行工作,并发性是其固有特性;?管程是语言或操作系统的成分,不必创建或撤销,而进程有生命周期,由创建而产生至撤销便消亡。3.4.2管程的实现:Hoare方法霍尔方法使用P和V操作原语来实现对管程中过程的互斥调用,及实现对共享资源互斥使用的管理。不要求signal操作是过程体的最后一个操作,且wait和signal操作可被设计成可以中断的过程。Hoare管程数据结构(1)1.mutex对每个管程,使用用于管程中过程互斥调用的信号量mutex(初值为1)。进程调用管程中的任何过程时,应执行P(mutex);进程退出管程时应执行V(mutex)开放管程,以便让其他调用者进入。为了使进程在等待资源期间,其他进程能进入管程,故在wait操作中也必须执行V(mutex),否则会妨碍其他进程进入管程,导致无法释放资源。Hoare管程数据结构(2)2.next和next-count对每个管程,引入信号量next(初值为0),凡发出signal操作的进程应该用P(next)挂起自己,直到被释放进程退出管程或产生其他等待条件。进程在退出管程的过程前,须检查是否有别的进程在信号量next上等待,若有,则用V(next)唤醒它。next-count(初值为0),用来记录在next上等待的进程个数。Hoare管程数据结构(3)3.x-sem和x-count引入信号量x-sem(初值为0),申请资源得不到满足时,执行P(x-sem)挂起。由于释放资源时,需要知道是否有别的进程在等待资源,用计数器x-count(初值为0)记录等待资源的进程数。执行signal操作时,应让等待资源的诸进程中的某个进程立即恢复运行,而不让其他进程抢先进入管程,这可以用V(x-sem)来实现。
您可能关注的文档
- 操作系统教程(第6版)课件6.2 并发进程的制约关系.pptx
- 操作系统教程(第6版)课件6.3 临界区.pptx
- 操作系统教程(第6版)课件6.5 临界区管理实现的硬件方式.pptx
- 操作系统教程(第6版)课件6.6 PV操作与进程互斥.pptx
- 操作系统教程(第6版)课件6.7 PV操作与进程同步.pptx
- 操作系统教程(第6版)课件6.8 生产者消费者问题探究.pptx
- 操作系统教程(第6版)课件6.9 管程概述.pptx
- 操作系统教程(第6版)课件6.11 霍尔管程的例.pptx
- 操作系统教程(第6版)课件6.12 进程通信.pptx
- 操作系统教程(第6版)课件6.15 死锁的防止.pptx
- 校长2025年春季开学第一课讲话关于蛇的故事七篇.docx
- 校长2025年春季开学思政第一课讲话(秧BOT)7篇.docx
- 校长2025年春季开学思政第一课讲话优秀范文7篇.docx
- 校长在2025年春季开学典礼上的思政第一课讲话:注重家庭,注重家教,注重家风7篇.docx
- 校长2025年春季开学思政第一课讲话稿关于DeepSeek7篇.docx
- 校长关于DeepSeek2025年春季开学思政第一课讲话稿7篇.docx
- 必威体育精装版版2025年春季思政第一课讲话7篇.docx
- (春晚秧BOT)校长2025年春季开学思政第一课讲话稿7篇.docx
- 2025 蛇年开学思政第一课:探寻蛇文化的奥秘启迪智慧与成长7篇.docx
- 2025年春季开学典礼上的讲话(逐梦青春志在巅,思政领航启新篇)7篇.docx
最近下载
- 2023年贵州毕节市金沙县面向全县考调机关事业单位招聘笔试参考题库附带答案详解.pdf VIP
- 松下 Panasonic AG-CX200MC中文说明书 用户手册 说明书下载 使用指南 如何使用 详细操作 使用说明.pdf
- 经销商返利协议.docx VIP
- 消防安全知识培训课件(2023必威体育精装版).pptx
- 2023—2024学年湖南省普通高中高一下学期学业水平合格性考试化学模拟试卷.doc VIP
- 一种MES管理系统及MES管理方法.pdf VIP
- JBT 13604-2018 氧化铝专用料浆阀.pdf
- 土地法学教学课件.ppt VIP
- 2024新版(人教版)七年级英语上、下册单词带音标.pdf VIP
- 2024年初级会计职称《初级会计实务》精讲课件 第1-5章.pptx
文档评论(0)