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

操作系统教程ch3-3.5进程通信.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

send()操作同步或异步send()操作,会有失败的情形,如果发送进程试图向一个不存在的进程发送消息,操作系统将无法识别用哪个信箱来缓存消息,如何处理呢?同步send()时,会返回一个错误码到发送方,发送方依赖错误码来工作;异步send()时,发送方可继续发送消息,而不期望任何返回码,系统可使用像UNIX中的信号机制来告诉发送方发送消息失败。receive()操作阻塞型接收操作:如果信箱中没有消息,接收进程会被挂起,直到有消息投入信箱;如果信箱中有消息,则会立即获得一个消息并返回。阻塞型receive()操作能同步发送进程和接收进程的通信;非阻塞型receive()操作查询信箱后,立即返还控制给调用进程,如果信箱中有消息,就返回消息,否则返回标志码,表明无消息可用。这种方法允许接收进程轮询信箱,如果信箱中没有待处理的消息,它可以去干其他工作。通信进程同步方式常用的组合有:阻塞型send和阻塞型receive非阻塞型send和阻塞型receive非阻塞型send和非阻塞型receive消息传递机制解决进程互斥问题create_mailbox(box);send(box,null);voidPi(){/*i=1,2,…,n*/messagemsg;while(true){receive(box,msg);/*临界区*/;send(box,msg);}}cobeginPi();coend消息传递机制解决

生产者-消费者问(1)

intcapacity;/*空缓冲区大小*/voidproducer(void){/*生产者进程*/intitem;messagem;/*消息缓冲区*/while(true){item=produce_item();/*生产消息*/receive(consumer,m);/*等待消费者发送空缓冲区*/build_message(m,item);/*构造一条发送的消息*/send(consumer,m);/*发送消息给消费者*/}}用消息传递机制解决

生产者-消费者问题(2)

voidconsumer(void){/*消费者进程*/intitem,i;for(i=0;i<capacity;i++)send(producer,m);/*给消费者发送空缓冲区*/while(true){receive(producer,m);/*接收消息*/item=extract_item(m);/*取消息*/send(producer,m);/*回送空消息*/consume_item(item);/*消耗消息*/}}3.6操作系统并发问题解决方案小结

操作系统并发问题解决方案原语类型采用策略同步机制适用埸合方向高级通信原语采用“消息传递”、“共享内存”、“共享文件”策略消息队列、共享内存、管道通信。解决并发进程通信、同步和互斥问题。适用于面向语句的高级程序设计。上自底向上

底低级通信原语采用“阻塞/唤醒+集中临界区”(1次测试)策略管程解决并发进程同步和互斥问题,不能传递消息。适用于面向语句的高级程序设计。采用“阻塞/唤醒+分散临界区”(1次测试)策略信号量和PV操作解决并发进程同步和互斥问题,不能传递消息。适用于面向指令的低级程序设计。采用“忙式等待”(反复测试)策略关中断、对换、测试并建立、peterson算法、dekker算法解决并发进程互斥问题,不能传递消息。适用于面向指令的低级程序设计。3.5进程通信3.5.1信号通信机制3.5.2管道通信机制3.5.3共享内存通信机制3.5.4消息传递通信机制进程通信概念

并发进程之间的交互必须满足两

文档评论(0)

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

计算机二级持证人

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

领域认证该用户于2024年11月02日上传了计算机二级

1亿VIP精品文档

相关文档