计算机操作系统第四版第二章进程通信ppt课件.ppt_第1页
计算机操作系统第四版第二章进程通信ppt课件.ppt_第2页
计算机操作系统第四版第二章进程通信ppt课件.ppt_第3页
计算机操作系统第四版第二章进程通信ppt课件.ppt_第4页
计算机操作系统第四版第二章进程通信ppt课件.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 进程通信 2 进程通信 指进程间的信息交换 按通信内容可以划分为2种低级通信 进程之间控制信息的交换称为低级通信 一般只传送一个或几个字节的信息 达到控制进程执行速度的作用 进程的同步和互斥 信号量机制作为同步工具是卓有成效的 但作为通信工具则不够理想 效率低 通信对用户不透明 高级通信 用户可以直接利用操作系统所提供的一组通信命令 高效地传送大量数据的一种通信方式 3 进程的同步与互斥是一种通信方式 一进程可通过修改变量或信号量告知另一进程 它是否可以继续执行下去 利用生产者 消费者算法 生产者进程可以传送一批数据给消费进程 或者说生产者通过缓冲区与消费者进行通信 但P V操作只能传递信号 信号本身不包含任何数据 而进程不当还容易导致进程死锁 因此 称这些同步机构为低级通信机构 4 高级通信的三种方式 1 共享存储器系统2 消息传递系统3 管道通信 共享文件通信 消息缓冲通信 直接通信 信箱通信 间接通信 5 进程通信的类型高级通信机制类型1共享存储器系统 Shared MemorySystem 2消息传递系统 MessagepassingSystem 3管道 pipe 通信系统 6 1共享存储器系统 共享存储器系统 相互通信的进程通过共享某些数据结构或存储区进行通信 因而可进一步分为 基于共享数据结构的通信方式 低效 只适于传递少量数据 基于共享存储区的通信方式 为了传送大量数据 在存储区中划出一块共享存储区 诸进程可通过对共享存储区进行读或写数据实现通信 7 2消息传递系统 在消息传递系统中 进程间的数据交换是以消息 message 在计算机网络中又称报文 为单位 程序员直接利用系统提供的一组通信命令 原语 来实现通信 因其实现方法的不同 又可分为 直接通信方式 消息缓冲机制 间接通信方式 信箱通信方式 8 直接通信方式 发送进程直接将消息发送给接收进程 并将它挂在接收进程的消息缓冲队列上 接收进程从消息缓冲队列中取得消息 故称为消息缓冲机制 在直接通信方式下 企图发送或接收消息的每个进程必须指出信件发给谁或从哪里接收消息 可用send原语和receive原语来实现进程之间的通信 send P 消息 把一个消息发送给进程P receive Q 消息 从进程Q接收一个消息 间接通信方式 发送进程将消息发送到某个中间实体 一般称为信箱 中 接收进程从中取得消息 所以称为信箱通信方式 相应的系统称为电子邮件系统 9 消息缓冲机制 直接通信 发送进程 在自己的内存空间设置一个 把要发送的消息填入发送区 发送区 接收区 接收进程 在自己的内存空间设置一个 公用缓冲区 两通信进程必须满足下列条件在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时 应禁止其他进程对缓冲区消息队列的访问 同理 接收进程取消息时也禁止其他进程访问缓冲区消息队列2当缓冲区中没有信息存在时 接收进程不能接收到任何消息 10 发送进程和接收进程发送原语Send 和接收原语receive 设公用信号量mutex 并置初值为1设SM为接收进程的私用信号量 置初值为0 Send m begin向系统申请一个消息缓冲区P mutex 使用公用缓冲区将发送区消息m送入新申请的消息缓冲区把消息缓冲区挂入接收进程的消息队列V mutex 释放缓冲区V SM 向接收进程发送消息end Receive m beginP SM 等待接的消息的个数P mutex 使用公用缓冲区摘下消息队列中的消息m将消息队列m从缓冲区复制到接收区释放缓冲区V mutex 释放公用缓冲区end 12 信箱通信 间接通信 信 邮 箱信箱是一种数据结构 逻辑上它分成两部分 信箱头和由若干格子组成的信箱体 间接通信方式中的发送和接收原语的形式如下 send A 信件 把一个信件发送给信箱A receive A 信件 从信箱A接收一封信件 发送和接收消息原语的功能如下 接收信件 如果指定信箱中有信 则取出一封信件 并释放等待信箱的等待者 否则 接收信件者被置成等待信箱中信件的状态 13 发送信件 如果指定的信箱未满 则将信件送入信箱中由指针所指示的位置 并释放等待该信箱中的信件的等待者 否则 发送信件者被置成等待信箱状态 信箱可由OS创建 也可由用户进程创建 创建者是信箱的拥有者 据此可把信箱分为 私用信箱 公用信箱 共享信箱 14 在利用信箱通信时 在发送进程和接收进程之间 存在着四种关系 一对一关系 即可以为发送进程和接收进程建立一条专用的通信链路 多对一关系 允许提供服务的进程与多个用户进程进行交互 也称客户 服务器交互 一对多关系 允许一个发送进程与多个接收进程交互 使发送进程用广播的形式 发送消息 多对多关系 允许建立一个公用信箱 让多个进程都能向信箱投递消息 也可取走属于自己的消息 15 3 管道通信管道 pipe 通信由UNIX首创的一种借助文件和文件系统形成的一种通信方式 由于其有效性 一些系统继UNIX之后相继引入了管道技术 如pc dos 管道通信将成为进程通信的一种重要方式 消息缓冲通信机构是以内存缓冲区为基础 管道是以文件系统为基础 有名管道无名管道 16 管道是指用于连接一个读进程和一个写进程 以实现它们之间通信的一个共享文件 又称pipe文件 向管道 共享文件 提供输入的发送进程 即写进程 以字符流形式将大量的数据送入管道 而接收管道输出的接收进程 即读进程 可从管道接收数据 由于发送和接收都是利用管道进行通信的 故称为管道通信 17 为了协调双方的通信 管道通信机制必须提供以下三方面的协调能力 互斥 一个进程正在对pipe进行读 写操作时 另一进程必须等待 同步 当写 输入 进程把一定数量的数据写入pipe后 便去睡眠等待 直到读 输出 进程取走数据将其唤醒 当读进程读空pipe 也应睡眠等待 直至写进程将数据写入管道 才将其唤醒 对方是否存在 只有确定对方已存在时 才能进行管道通信 否则会造成因对方不存在而无限期等待 18 1 信箱通信是一种 通信方式 A 直接通信B 间接通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论