第二章 進程管理.pptVIP

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 進程管理

第二章 进程管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程的同步问题 2.5 管程机制 2.6 进程通信 教学设计 课堂内容:讲述进程通信的类型、实现与机制 教学要求:学生明白三种进程通信的方法原理,了解消息传递方法的实现过程,掌握消息队列的通信机制。 知识难点:信箱通信方式;消息队列的数据结构设计,通信原语的设计。 教学方式:课堂讲述,在介绍课本知识的基础上,一方面集合伪代码示例分析,一方面借助Linux模拟环境下的程序演示,从而加深学生对进程通信的理解。 困难分析:学生可能会对进程通信的理解不够深刻,可以在实验课通过实际编程来深入学习进程通信的运行机制。 上节回顾 四种信号量 生产者—消费者问题:记录型信号量 公用信号量用于变量互斥,一般在同个过程中 私用信号量用于资源控制,多交叉在不同过程中 先私后公 哲学家就餐问题:AND信号量 读者-写者问题:信号量集 管程 2.6 进 程 通 信 信号量适合同步控制, 不适宜作为通信工具。 因此需要高级进程通信方式。 2.6.1 高级进程通信的类型 2.6.1 进程通信的类型 1. 共享存储器系统(Shared-Memory System) 基于共享数据结构的通信方式。 例如生产者-消费者问题中的缓冲池。 该方式增加程序员负担,OS只须提供共享空间,低效,只能传递少量数据。 (2) 基于共享存储区的通信方式。 例如Windows的DDE DDE技术通信原理 动态数据交换(Dynamic Data Exchange,DDE)是一种进程间通信形式。 两个同时运行的程序间通过DDE方式交换数据时是客户/服务器关系,一旦客户和服务器建立起来连接关系,则当服务器中的数据发生变化后就会马上通知客户。通过DDE方式建立的数据连接通道是双向的,即客户不但能够读取服务器中的数据,而且可以对其进行修改。 2. 消息传递系统(Message passing system) 不论是单机系统、多机系统,还是计算机网络,消息传递机制都是用得最广泛的一种进程间通信的机制。 1、在消息传递系统中,进程间的数据交换,是以格式化的消息(message)为单位(在计算机网络中,又把message称为报文) 2、程序员直接利用系统提供的一组通信命令(原语)进行通信。 操作系统隐藏了通信的实现细节,大大减化了通信程序编制的复杂性,而获得广泛的应用。消息传递系统的通信方式属于高级通信方式。又因其实现方式的不同而进一步分成直接通信方式和间接通信方式两种。 3. 管道(Pipe)通信 所谓“管道”,是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。向管道(共享文件)提供输入的发送进程(即写进程), 以字符流形式将大量的数据送入管道;而接受管道输出的接收进程(即读进程),则从管道中接收(读)数据。由于发送进程和接收进程是利用管道进行通信的,故又称为管道通信。这种方式首创于UNIX系统,由于它能有效地传送大量数据,因而又被引入到许多其它操作系统中。 为了协调双方的通信,管道机制必须提供以下三方面的协调能力: ① 互斥,即当一个进程正在对pipe执行读/写操作时,其它(另一)进程必须等待。 ② 同步,指当写(输入)进程把一定数量(如4 KB)的数据写入pipe,便去睡眠等待, 直到读(输出)进程取走数据后,再把他唤醒。当读进程读一空pipe时,也应睡眠等待,直至写进程将数据写入管道后,才将之唤醒。 ③ 确定对方是否存在,只有确定了对方已存在时,才能进行通信。 2.6.2 消息传递通信的实现方法 1. 直接通信方式 这是指发送进程利用OS所提供的发送命令,直接把消息发送给目标进程。此时,要求发送进程和接收进程都以显式方式提供对方的标识符。 通常,系统提供下述两条通信命令(原语): Send(Receiver, message); 发送一个消息给接收进程; Receive(Sender, message); 接收Sender发来的消息; 例如 原语Send(P2, m1):表示将消息m1发送给接收进程P2; 原语Receive(P1,m1):表示接收由P1发来的消息m1。 在某些情况下,接收进程可与多个发送进程通信,因此,它不可能事先指定发送进程。例如,用于提供打印服务的进程,它可以接收来自任何一个进程的“打印请求”消息。对于这样的应用,在接收进程接收消息的原语中的源进程参数,是完成通信后的返回值,接收原语可表示

文档评论(0)

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

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

1亿VIP精品文档

相关文档