- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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消息传递通信机制进程通信概念
并发进程之间的交互必须满足两
您可能关注的文档
- 操作系统教程(第6版)课件6.2 并发进程的制约关系.pptx
- 操作系统教程(第6版)课件6.3 临界区.pptx
- 操作系统教程(第6版)课件6.5 临界区管理实现的硬件方式.pptx
- 操作系统教程(第6版)课件6.6 PV操作与进程互斥.pptx
- 操作系统教程(第6版)课件6.7 PV操作与进程同步.pptx
- 操作系统教程(第6版)课件6.8 生产者消费者问题探究.pptx
- 操作系统教程(第6版)课件6.9 管程概述.pptx
- 操作系统教程(第6版)课件6.11 霍尔管程的例.pptx
- 操作系统教程(第6版)课件6.12 进程通信.pptx
- 操作系统教程(第6版)课件6.15 死锁的防止.pptx
- 校长2025年春季开学第一课讲话关于蛇的故事七篇.docx
- 校长2025年春季开学思政第一课讲话(秧BOT)7篇.docx
- 校长2025年春季开学思政第一课讲话优秀范文7篇.docx
- 校长在2025年春季开学典礼上的思政第一课讲话:注重家庭,注重家教,注重家风7篇.docx
- 校长2025年春季开学思政第一课讲话稿关于DeepSeek7篇.docx
- 校长关于DeepSeek2025年春季开学思政第一课讲话稿7篇.docx
- 必威体育精装版版2025年春季思政第一课讲话7篇.docx
- (春晚秧BOT)校长2025年春季开学思政第一课讲话稿7篇.docx
- 2025 蛇年开学思政第一课:探寻蛇文化的奥秘启迪智慧与成长7篇.docx
- 2025年春季开学典礼上的讲话(逐梦青春志在巅,思政领航启新篇)7篇.docx
文档评论(0)