计算机操作系统第二章进程管理第二章进程管理计算机操作系统第二.pptVIP

计算机操作系统第二章进程管理第二章进程管理计算机操作系统第二.ppt

  1. 1、本文档共137页,可阅读全部内容。
  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 进程的基本概念 互斥与同步解决方法(软件方法) Dekker算法、Peterson算法 Dekker算法 Dekker算法 Dekker算法 Dekker算法 Dekker算法 Dekker算法 Dekker算法 Dekker算法 Dekker算法 Dekker算法 Peterson算法 Peterson算法 Unix中的管道 创建管道 #include unistd.h int pipe(int fd[2]); 返回两个文件描述字:fd[0]用于打开来读,fd[1]用于打开来写 Unix中的管道 单个进程中的通道 Unix中的管道 典型用途 Unix中的管道 典型用途 Unix中的管道 例 Unix中的管道 半双工管道、全双工管道 附录:Windows2000/XP的进程和线程管理 协调 ① 互斥:读时不写、写时不读 ② 同步:协调读写速度等问题 ③ 确定对方是否存在,只有确定了对方已存在时,才能进行通信 3. 管道(Pipe)通信 2.6.2 消息传递通信的实现方法 1. 直接通信方式 原语: Send(Receiver, message); 发送一个消息给接收进程; Receive(Sender, message); 接收Sender发来的消息。 注:原语SEND、RECEIVE和信号量类似,为系统调用 管程monitor是由编程语言构造和设计 直接消息传递通信的解决生产-消费者问题 void producer(void) { int item; message m; //message buffer while (TRUE) { produce_item(item); //generate next item to put in buffer build_message(m,item); //construct a message to send send(consumer,m); //send item to consumer } } 直接消息传递通信的解决生产-消费者问题 void consumer(void) { int item; message m; //message buffer while (TRUE) { receive(producer,m); //get message containing item extract_item(m,item); //take item out of message consumer_item(item); //do something with item } } 2. 间接通信方式 (1) 信箱的创建和撤消。进程可利用信箱创建原语来建立一个新信箱。创建者进程应给出信箱名字、信箱属性(公用、私用或共享);对于共享信箱, 还应给出共享者的名字。当进程不再需要读信箱时,可用信箱撤消原语将之撤消 利用信箱传递消息 2. 间接通信方式 (2) 消息的发送和接收。当进程之间要利用信箱进行通信时,必须使用共享信箱,并利用系统提供的下述通信原语进行通信。 Send(mailbox, message); 将一个消息发送到指定信箱; Receive(mailbox, message); 从指定信箱中接收一个消息; 信箱可由操作系统创建,也可由用户进程创建,创建者是信箱的拥有者。据此,可把信箱分为以下三类: 1) 私用信箱 用户进程建立一个新信箱,并作为该进程的一部分 只有信箱的拥有者有权从信箱中读取消息,其他用户则只能将自己构成的消息发送到该信箱中 可采用单向通信链路的信箱来实现 拥有该信箱的进程结束时,信箱也随之消失。 2. 间接通信方式 2) 公用信箱 由操作系统创建,并提供给系统中的所有核准进程使用 核准进程既可把消息发送到该信箱中,也可从信箱中读取发送给自己的消息 公用信箱应采用双向通信链路的信箱来实现 通常,公用信箱在系统运行期间始终存在 信箱类型 3) 共享信箱 它由某进程创建,在创建时或创建后,指明它是可共享的,同时须指出共享进程(用户)的名字 信箱的拥有者和共享者,都有权从信箱中取走发送给自己的消息。 信箱类型 发送进程与接收进程的关系: (1) 一对一 (2) 多对一,也称为客户/服务器交互(client/serv

文档评论(0)

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

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档