操作系统军第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文档。上传文档
查看更多
操作系统军第5讲

操作系统概念 第五讲 进程通信 上章回顾 什么是临界区? 什么是信号量,如何定义初始值? 本课总体纲要 进程通信(Interprocess Communication) 消息、邮箱机制 共享内存机制 管道机制 进程通信实例解析 死锁(DeadLock) 死锁的概念 产生死锁的必要条件 死锁的排除方法 死锁实例解析 进程通信-分类(1) 在单机系统中,进程间通信方式可分为4种: 主从式(master/servant system) 主进程可以自由使用从进程资源 从进程的动作受到主进程的限制 主进程和从进程关系固定 应用于终端控制进程和终端进程 进程通信-分类(2) 会话式(Dialogue system) 使用进程在使用服务进程提供的服务前,必须得到许可 服务进程根据使用进程的要求提供服务,单控制权属于服务进程本身 使用进程和服务进程关系固定 应用于用户进程和磁盘管理 进程通信-分类(3) 消息或邮箱机制 只要存在空缓存区或邮箱,发送进程就可以发送消息 发送进程和接受进程无直接联系 发送进程和接受进程之间存在缓冲区或邮箱用来存放被传输的消息 进程通信-分类(4) 共享内存机制 共享内存方式不要求数据移动,两个需要互相交互的信息的进程通过对同一共享数据区(shared memory)的操作来达到互相通信的目的。 进程通信-消息缓冲机制(5) 由于消息缓冲机制中使用的缓冲区是公用缓冲区,使用消息缓冲机制传送数据时,通信进程应满足的条件: 进程对缓冲区的操作必须互斥 当缓冲区种无消息存在时,接收进程不能接受到任何消息 设置公用信号量mutex,接收进程私用信号量SM,消息m。 进程通信-消息缓冲机制(6) Send (m): Begin 向系统申请一个消息缓冲区 P(mutex) 将消息m发送到新申请的消息缓冲区 V(mutex) V(SM) Receive(m): Begin P(SM) P(mutex) 将消息m从缓冲区复制到接收区并释放缓冲区 V(mutex) 进程通信-邮箱(7) 对于只有一个发送进程和一个接收进程使用的邮箱,进程间通信应满足以下条件: 发送进程发送消息时,邮箱中至少有一个存储消息的单元 接收进程接收消息时,邮箱中至少有一个消息存在 进程通信-管道(pipe) Unix 系统从System V开始,提供有名管道和无名管道两种数据通信方式。 无名管道为建立管道的进程及其子进程提供一条以比特流方式传送消息的通信管道。该管道在逻辑上是管道文件,物理上则由文件系统的高速缓冲区构成。 进程通信-管道(pipe) main() {int x,fd[2]; char buf[30],s[30]; Pipe(fd); while((x=fork())==-1);//创建子进程失败,原地循环 if(x==0) { sprintf(buf,”子进程写信息到父进程”); write(fd[1],buf,30); exit(0);} else { wait(0); read(fd[0],s,30);printf(“%s”,s);} } 进程通信实例解析 采用进程通信的管理方法解决生产者-消费者问题。要求生产者能告诉消费者产品的说明、规格、价格等,而消费者能反馈对物品的评价和处理情况 设置公用信箱M 进程通信实例解析 生产者: L1:生产一个产品 L2:receive(consumer,M); If 物品未取走then goto L2 Else 组织回信,说明产品信息 Send(consumer,M); Goto L1 消费者: L1:receive(producer,M); If 没有产品then goto L1 Else 组织回信,反馈产品信息 Send(producer,M); Goto L1 本课总体纲要 进程通信(Interprocess Communication) 消息、邮箱机制 共享内存机制 管道机制 进程通信实例解析 死锁(DeadLock) 死锁的概念 产生死锁的必要条件 死锁的排除方法 死锁实例解析 死锁 死锁的定义: 当多个进程因竞争资源而造成的一种僵局,在无外力作用下,这些进程将永远不能继续向前推进,这种现象称为死锁。 死锁的起因: 并发进程的资源竞争 进程推进顺序不当 死锁 产生死锁的必要条件: 互斥条件:资源的排他性 不剥夺条件:进程对获得的资源在未使用完毕前,不可被其他进程剥夺使用权利 部分分配条件:进程每次申请新资源时,同时还要占用已分配的资源 环路条件:存在进程循环链,链中每个进程已获得的资源同时被下一个进程申请 死锁 死锁的排除方法: 死锁预防 死锁避免 死锁的检测和恢复 死锁 死锁预防 一次性分配法 资源顺序分配法 先释放,后申请 死锁 死锁避免:

文档评论(0)

186****0772 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档