2015秋操作系统第二章进程1013规范.ppt

  1. 1、本文档共210页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.6 进程通信(消息缓冲通信) 消息缓冲通信是一种直接通信方式 ,操作系统提供消息缓冲区。 当一进程向另一进程发送消息时,便向系统申请一个缓冲区,并把已制备好的消息从发送区复制到该缓冲区,然后把它插入接收进程的消息链中。 操作系统提供下述两个通信命令(原语): Send ( Receiver, message ) :发送消息 Receive( Sender, message ) :接收消息 2.6 进程通信(消息缓冲通信) 图2-17 消息缓冲通信示意图 2.6 进程通信(消息缓冲通信) 在某些情况下,接收进程可与多个发送进程通信。因此,它不可能事先指定发送进程。 例如,用于提供打印服务的进程,它可以接收来自任何一个进程的“打印请求”消息。 接收原语可表示为: Receive (id, message) 其中id是完成通信后的返回值。 2.6 进程通信 (信箱通信) 信箱通信是一种间接通信方式,通信时发送进程它的信件投入信箱,接收进程可以在任何时候取走信件而不会丢失 ,进程间通过信箱实现通信。 信箱通信分为单向信箱通信和双向信箱通信 2.6 进程通信 (信箱通信) 单向信箱通信:只要信箱中有空格,发送进程便可向信箱中投递信件,若所有格子都已装满,则发送进程等待,或者继续执行,待有空格子时再发送。 只要格子中有信,接收进程便能取出—信件。 若信箱为空,接收进程或者等待,或者继续执行。 2.6 进程通信(信箱通信) 双向信箱通信:信箱中既有发送进程发出的信件,也有接收进程的回答信件。 由于发送进程和接收进程均以各自独立的速度向前推进,当发送进程发送信件的速度超过接收进程的接收速度时,会产生上溢(信箱满)。 反之,会产生下溢(信箱空),即接收进程向空信箱索取信件。 需要在两个进程之间进行同步控制。 2.6 进程通信 (信箱通信) 利用信箱通信时,发送进程和接收进程之间,存在以下四种对应关系: 一对一 多对一 一对多 多对多 2.6 进程通信(共享文件通信) 消息缓冲通信和信箱通信有三个问题: 占用了宝贵的内存空间; 通信信息在停电或关机后便会丢失(由内存物理特性决定) 发送和接收必须以整个消息或信件为单位,不能存取其中的一部分 共享文件通信:信息交换量可以很大,发送和接收更加灵活,信息保存期也较长。 缺点是信息的交换涉及到 I/O 操作,同步和控制机构也较为复杂。 2.6 进程通信(共享文件通信) 共享文件方式(管道通信),基于文件系统,利用一个打开的共享文件连接两个相互通信的进程,文件作为缓冲传输介质 发送进程 接收进程 字符流方式写入读出 先进先出顺序 2.6 进程通信 (五) 消息传递系统的若干问题 1.通信链路(communication link) 分类 根据建立方式划分两类: 显式的“建立”命令建立,显式拆除 利用系统发送命令(原语),系统自动建立 根据链路的连接方法划分两类: 点-点连接通信链路 // 多点连接链路 根据通信方式 单向通信链路 // 双向通信链路 根据通信链路容量 无容量通信链路 // 有容量通信链路 2.6 进程通信 (五) 消息传递系统的若干问题 2.消息的格式 一个消息分成消息头和消息正文两部分 消息头包括消息在传输时所需的控制信息,如源进程名、目标进程名、消息长度、消息类型、消息编号及发送的日期和时间 消息正文则是发送进程实际上所发送的数据。 在某些OS中,消息可以采用定长的消息格式、变长的消息格式或者是两者都采用的方式。 2.6 进程通信 (五) 消息传递系统的若干问题 3.进程同步方式: 发送和接收进程,在完成消息的发送或接收后,都存在进程或者继续发送(接收)或者阻塞。 有三种情况: (1)发送进程阻塞、接收进程阻塞。 (2)发送进程不阻塞、接收进程阻塞。 (3)发送进程和接收进程均不阻塞。 2.7 线程 进程模型是基于下面两个独立的概念: 资源分配的单位:操作系统实施保护功能,以防止进程之间发生可能的冲突。 调度的单位:一个进程可能通过一个或多个程序(段)的执行轨迹执行,形成一条进程内执行流,或控制流。 进程这两个特点是可以相互独立的,操作系统将这两个属性分别赋予了两个不同实体;拥有资源所有权的仍称为进程,而调度的单位称为线程轻量级进程。 为了减少系统对于并发所带来的时/空开销,建立了线程(Thread)模型。 线程 线程是进程内一个相对独立的执行流或控制流;是处理机分配的实体。传统用户进程是单线程的。 2.7.1 线程的引入 2.7 线程 进程两个属性分开

文档评论(0)

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

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

1亿VIP精品文档

相关文档