OS第8讲new.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文档。上传文档
查看更多
OS第8讲new

Computer Operating System 计算机操作系统 3.7 进程通信 一.含义和分类 通信(communication):进程间传送数据 OS可以被看作是各种进程组成的。如用户进程、打印进程,计算进程、这些进程都具有各自的独立功能. 进程通信分类:根据通信内容可以划分为低级通信和高级通信传送。 分类 低级通信:进程间控制信息的交换称为低级通信; 低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用。 高级通信:进程间大批量数据的交换称为高级通信。 高级通信要传送大量数据。高级通信的目的不是为了控制进程的执行速度,而是为了交换信息。 二.通信方式 (1)主从式 主要特点: ① 主进程可自由使用从进程的资源或 数据。 ② 从进程的动作受主进程的控制; ③ 主进程和从进程的关系是固定的。 典型例子:终端控制进程和终端进程。 (2)会话式 即直接通信方式,具有如下特点: ① P1在使用P2所提供的服务之前,必须得到P2的许可; ② P2根据P1要求提供服务,但对所提供服务控制由P2自身完成。 ③ P1和P2在通信时才有固定连接关系。 例子:用户进程Pu与磁盘管理进程Pm之间 各Pu向Pm提出使用要求并得到许可之后,才可以使用相应的存储区,操作时受Pm控制,在结束磁盘访问时断开连接. (3)消息或邮箱机制 特点 ① 只要存在空缓冲区或邮箱,发送进程就可以发送消息。 ② 与会话系统不同,发送进程和接收进程之间无直接连接关系,接收进程可能在收到某个发送进程发来的消息之后,又转去接收另一个发送进程发来的消息。 ③ 发送进程和接收进程之间存在缓冲区或邮箱用来存放被传送消息。 (4)共享存储区方式 共享存储区方式不要求数据移动。 两个需要互相交换信息的进程通过对同一共享数据区的操作来达到互相通信的目的。 这个共享数据区是每个互相通信进程的一个组成部分. 三.消息缓冲机制 工作过程:发送进程在发送消息前,先在自己的内存空间设置一个发送区,把欲发送的消息填入其中,然后再用发送过程将其发送出去。 接收进程则在接收消息之前,在自己的内存空间内设置相应的接收区,然后用接收过程接收消息。 两通信进程必须满足如下条件 ①、在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该缓冲区消息队列进行访问。 ②、当缓冲区无消息时,则接收进程不能接收到任何消息。 (无消息不取) ③、发送进程未申请到缓冲区,不可以发送 消息. (无缓冲不放) 描述:设互斥信号量mutex=1,设S为接收进程的私用信号量,表示等待接收的消息个数,其初值为S=0 。 四.邮箱机制 邮箱:一种共享的数据结构的实体,用来暂存发送进程发送给接收进程的消息. 发送进程把消息送往邮箱,接收进程从邮箱中取出消息,来完成进程间信息交换。 对于只有一发送进程和一接收进程使用的邮箱,则应满足条件: ①、发送进程发送消息时,邮箱中至少要有一个空格能存放该消息。 ②、接收进程接收该消息时,邮箱中至少要有一个消息存在。 解:设Se为发送进程的私用信号量,空邮箱的数量 初值Se=n, Sf为接收进程的私用信号量,满邮箱的数量,初值Sf=0 (1) A-- B P(Se) V(Sf) (2) A-- B P(Sf) V(Se) 3.8 死锁(Deadlock) 定义(教材):是指各并发进程互相等待对方所拥有的资源,且它们在得到对方的资源之前不释放自己拥有的资源,从而造成资源的互相占有和互相等待,使各并发进程不能向前推进的状态。 定义(汤):多个进程因争夺资源而造成的一种僵持。 那些会引起死锁 A() { P(Sc) … V(Sc) … P(Sd) … V(Sd) } 死锁的起因 死锁的起因是由于并发进程的资源竞争 系统提供的资源个数少于并发进程所要求的该类资源数。 可以采用适当的资源分配算法,以达到消除死锁的目的。 产生死锁的四个必要条件 ①、互斥使用 对于独占资源,每个资源每次只能给一个进程使用,进程一旦申请到了资源后占为己有,则排斥其他进程享受该资源。 ②、不可剥夺 正在使用的资源不可剥夺,进程获得的资源尚未使用完毕之前,只能由占有者自己释放,不能被其他进程强行占有。 ③、部分分配 进程因未分配到新的资源而受阻,但对已经占有的资源又抱住不放。 ④、循环等待 存在进程的循环等待链,前一进程占有的资源正是后一进程所需求的资源,结果形成了循环等待的僵持局面。 死锁排除方法 (1)预防死锁 (2)避免死锁 (3)检测死锁 (4)解除死锁 死锁的预防 在系统设计时确定资源分配算法,保证不发生死锁。做法是保证在任何时刻产生死锁的

文档评论(0)

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

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

1亿VIP精品文档

相关文档