网站大量收购闲置独家精品文档,联系QQ:2885784924

(2012-10-26修订)计算机操作系统03-2.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统 本章主要内容(续) 3.7进程通信 3.8死锁问题 3.9线程 3.7进程通信 进程通信(communication): 定义: 简单地说,就是进程间的信息交换。 分类: 低级通信:进程间控制信息的交换。 信号量及锁变量只能传递信号,没有数据转送能力。 高级通信:进程间大批量信息(数据)的交换。 高级通信的目的不是为了控制进程的执行速度,而是为了交换信息。 进程的通信方式 主从式 主进程可自由使用从进程的资源或数据; 从进程动作受主进程的控制; 主进程和从进程关系固定。 会话式 使用进程在使用服务进程所提供的服务之前,必须得到服务进程的许可; 服务进程根据使用进程的请求提供服务,但对所提供服务的控制由服务进程自身完成; 通信时连接关系固定。 进程的通信方式 消息或邮箱机制 消息:区别于命令或指令,一方面表示有大量信息,另一方面表示互相通信进程的平等。 只要存在空缓冲区或邮箱,发送进程可发送消息; 发送进程和接收进程之间没有直接联系,与会话式不同; 存在缓冲区或邮箱存放消息。 进程的通信方式 共享存储方式 不要求数据移动,两个需要互相交换信息的进程通过对同一共享数据区的操作来达到互相通信的目的。 这个共享数据区是每个互相通信的进程的组成部分。 消息缓冲机制 消息缓冲机制的基本思想: 根据生产者与消费者关系原理,利用内存的共用消息缓冲池实现进程之间的信息交换。 消息缓冲区是指含有如下信息的缓冲区: 指向发送进程的指针 指向下一个消息缓冲区的指针 消息长度 消息正文 消息缓冲区作为进程通信的一个基本单位,即每当发送进程欲发送消息时,便申请并形成一个消息缓冲区,并发送给指定的接收进程。 消息缓冲机制 消息缓冲机制的实现过程: 发送进程在发送消息前,先在自己的内存空间设置一个始地址为a的消息发送区,把欲发送的消息填入其中,然后再用发送过程send (B,a)将其发送到缓冲区。 接收进程则在接收消息之前,在自己的内存空间内设置一个始地址为b的消息接收区,然后用接收过程receive (b)接收缓冲区内的消息。 注:由于接收进程可能接收到多个进程发来的多个消息缓冲区,故它将所有的消息缓冲区连接成一个消息队列,其队列头由接收进程PCB中的消息队列头指针给出。 消息缓冲机制 消息缓冲机制的实现过程: 消息缓冲机制 通信进程必须满足如下条件: 在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,应禁止其他进程对该消息缓冲区队列的访问。否则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息缓冲区消息时,也应禁止其他进程对该队列的访问。 间接制约 设置公用信号量: mutex ,其初值为1 。 当消息缓冲区队列中无消息存在时,接收进程不能接收到任何消息。 直接制约 设置私用信号量:SM为接收进程的私用信号量,表示等待接收的消息个数,其初值为0 。 消息缓冲机制 进程之间通信的实现: 邮箱通信 邮箱通信的基本思想: 邮箱通信是由发送进程申请建立一个与接收进程连接的邮箱,发送进程把消息送往邮箱,接收进程从邮箱取走消息,从而完成进程间信息交换。 邮箱由邮箱头和邮箱体组成。其中邮箱头描述邮箱名称、邮箱大小、邮箱方向以及拥有该邮箱的进程名等。邮箱体主要用来存放消息(如图) 。 设置邮箱的最大好处就是发送进程和接收进程之间没有处理时间上的限制(消息缓冲需要互斥使用消息队列)。 邮箱通信 注: 一个邮箱可以考虑成发送进程与接收进程之间的大小固定的私有数据结构。 它不像缓冲区那样被系统内所有进程共享。 两通信进程之间的关系: 发送进程发送消息时,邮箱中至少要有一个空格能存放该消息。 接收进程接收消息时,邮箱中至少要有一个消息存在。 即发送进程与接收进程间存在着直接制约。 发送进程的私用信号量: nullnum表示邮箱中空格个数,初值为信箱的空格数 n 。 接收进程的私用信号量: fullnum表示邮箱中消息个数,初值为0 。 邮箱通信 实现(两个进程通信): 设发送进程调用过程 deposit(m)将消息发送到邮箱,接收进程调用过程remove(m)将消息m 从邮箱中取出。 3.8死锁定义 定义:各并发进程彼此互相等待对方所拥有的资源,且这些进程在得到对方的资源之前不会释放自己所拥有的资源,从而造成并发进程不能继续向前推进的状态。 若死锁只存在于部分进程中,称系统发生了局部死锁;若系统中所有进程都出现了死锁,则称系统发生了全局死锁。 死锁的起因 死锁的起因是并发进程的资源竞争,而根本原因在于系统提供的资源个数少于并发进程所要求的该类资源数。 死锁发生的必要条件 互斥条件

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档