- 1、本文档共209页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
问题多个进程出现在管程中当一个进入管程的进程执行等待操作时它应当释放管程的互斥权当一个进入管程的进程执行唤醒操作时如唤醒管程中便存在两个同时处于活动状态的进程处理方法有三种等待继续直到退出或等待等待继续直到等待或退出规定唤醒为管程中最后一个可执行的操作因为管程是互斥进入的所以当一个进程试图进入一个巳被占用的管程时它应当在管程的入口处等待因而在管程的入口处应当有一个进程等待队列称作入口等待队列如果进程唤醒进程则等待继续如果进程在执行又唤醒进程则等待继续如此在管程内部由于执行唤醒操作可能会出现多个等
问题:多个进程出现在管程中 当一个进入管程的进程执行等待操作时,它应当释放管程的互斥权;当一个进入管程的进程执行唤醒操作时(如P唤醒Q),管程中便存在两个同时处于活动状态的进程 处理方法有三种: P等待Q继续,直到Q退出或等待 Q等待P继续,直到P等待或退出 规定唤醒为管程中最后一个可执行的操作 因为管程是互斥进入的,所以当一个进程试图进入一个巳被占用的管程时它应当在管程的入口处等待,因而在管程的入口处应当有一个进程等待队列,称作入口等待队列 如果进程P唤醒进程Q,则P等待Q继续,如果进程Q在执行又唤醒进程R,则Q等待R继续,……,如此,在管程内部,由于执行唤醒操作,可能会出现多个等待进程,因而还需要有一个进程等待队列,这个等待队列被称为紧急等待队列。它的优先级应当高于入口等待队列的优先级 由于管程通常是用于管理资源的,因而在管程内部,应当存在某种等待机制。当进入管程的进程因资源被占用等原因不能继续运行时使其等待。为此在管程内部可以说明和使用一种特殊类型的变量,称作条件变量: VAR C:condition; 对于条件型变量,可以执行wait和signal操作: wait(c):如果紧急等待队列非空,则唤醒第一个等待者;否则释放管程的互斥权,执行此操作的进程的PCB入c链尾部 signal(c):如果c链为空,则相当于空操作,执行此操作的进程继续;否则唤醒第一个等待者,执行此操作的进程的PCB入紧急等待队列的尾部 两个主要途径: 直接构造(效率高) 间接构造,即用某种已经实现的同步机制去构造 例子:用P-V操作构造管程 6. 管程的实现 (1)设置进程和管程的目的不同 (2)系统管理数据结构 进程:PCB 管程:等待队列 (3)管程被进程调用 (4)管程是操作系统的固有成分,无创建和撤消 7.管程和进程的异同点 第二章???进程管理 2.6 进程通信 1.进程通信概述 P.V操作实现的是进程之间的低级通讯,所以P.V为低级通讯原语。它只能传递简单的信号,不能传递交换大量信息 如果要在进程间传递大量信息则要用Send / Receive原语(高级通讯原语) 2.实现进程通信的方式 共享存储器方式:相互通信的进程通过共享某些数据结构或存储区来进行通信,可分为共享数据结构方式、共享存储区方式; 消息通信方式:进程间的消息交换以消息或报文为单位,程序员利用一组通信命令(原语)来实现通信,可分为直接、间接通信方式; 共享文件方式:利用共享文件来实现进程间的通信。 3.管道通信 在UNIX系统中,利用一个打开的共享文件来连接两个相互通信的进程,该共享文件称为管道(Pipe),因而该方式又称为管道通信。 为了协调双方通信,管道通信必须提供三方面的协调能力:互斥、同步、对方是否存在。 4.消息传递模式 系统为进程提供了两个高级通讯原语send和receive。要进行消息传递时执行send ,当接收者要接收消息时执行receive 消息缓冲:在内存中开设缓冲区,发送进程将消息送入缓冲区,接收进程接收传递来的缓冲区 信箱通信 5.直接方式 共享文件模式:管道通信发送进程发消息时要指定接收进程的名字, 反过来,接收时要指明发送进程的名字 Send(receiver,message) Receiver(sender,message) 对称形式:一对一 非对称形式:多对一 (顾客/服务员) 有缓冲(有界,无界),无缓冲 直接通信方式 直接通信方式模型 6.消息缓冲(有界缓冲区) 在操作系统空间设置一组缓冲区,当发送进程需要发送消息时,执行send系统调用,产生自愿性中断,进入操作系统,操作系统为发送进程分配一个空缓冲区,并将所发送的消息从发送进程copy到缓冲区中,然后将该载有消息的缓冲区连接到接收进程的消息链链尾,如此就完成了发送过程。发送进程返回到用户态继续执行。 在以后某个时刻,当接收进程执行到receive接收原语时,也产生自愿性中断进入操作系统,由操作系统将载有消息的缓冲区从消息链中取出,并把消息内容copy到接收进程空间,之后收回缓冲区,如此就完成了消息的接收,接收进程返回到用户态继续进行。 直接通信方式实例-消息缓冲通信 消息缓冲数据结构(下图) 此外,进程的PCB块中增加一些数据项以支持消息缓冲区的通信机制实现;如:mq,消息链首指针;mutex,消息链互斥信号量;Sm,消息链同步计数信号量。 sender 消息发送者 size 消息长度 text 消息正文 next 指向下一个消息缓冲区的指针 两个进程利用消息缓冲区通信过程
您可能关注的文档
最近下载
- 模具培训课课件.pptx
- 双层超前小导管施工技术交底.doc
- 西方古代建筑史智慧树知到期末考试答案章节答案2024年天津大学.docx
- ISO9001:2015&ISO14001:2015&ISO45001:2018三体系记录控制程序.doc VIP
- 医院提高住院患者抗菌药物治疗前病原学送检率学习培训课件.pptx
- 苏教版一年级下册数学期末考试试卷(6套)..pdf
- 2024年度《安全教育家长会》课件课件.pptx VIP
- JGJ-T231-2021建筑施工承插型盘扣式钢管脚手架.pdf
- 采购控制程序(ISO9001ISO14001ISO45001-2018).doc VIP
- 水库大坝安全管理应急预案编制导则.pdf VIP
文档评论(0)