- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
生产者-消费者问题Shareddatasemaphorefull=0empty=nmutex=1
6.* OSC 经典同步问题 主讲教师:夏莹杰 xiayingjie@ 经典进程同步问题 经典进程同步问题是从进程并发执行中归纳的典型例子。主要的经典同步问题有生产者-消费者问题、读者-写者问题、哲学家进餐问题等。 生产者-消费者问题(producer-consumer Problem ) 生产者-消费者问题是最著名的同步问题,它描述一组生产者(P1 ……Pm)向一组消费者(C1……Cq)提供消息。它们共享一个有界缓冲池(bounded buffer pool),生产者向其中投放消息,消费者从中取得消息,如下图所示。生产者-消费者问题是许多相互合作进程的一种抽象。 生产者-消费者问题 假定缓冲池中有n个缓冲区,每个缓冲区存放一个消息。由于缓冲池是临界资源,它只允许一个生产者投入消息,或者一个消费者从中取出消息。即生产者之间、生产者与消费者之间、消费者之间都必须互斥使用缓冲池。所以必须设置互斥信号量mutex,它代表缓冲池资源,它的数值为1。 P1 Pm C1 Cq B0 B1 …. …... ……… Bn-1 生产者-消费者问题 生产者和消费者二类进程之间应满足下列二个同步条件: 只有在缓冲池中至少有一个缓冲区已存入消息后,消费者才能从中提取消息,否则消费者必须等待。 只有缓冲池中至少有一个缓冲区是空时,生产者才能把消息放入缓冲区,否则生产者必须等待。 为了满足第一个同步条件,设置一个同步信号量full,它代表的资源是缓冲区满,它的初始值为0,它的值为n时整个缓冲池满。 为了满足第二个同步条件,设置另一个同步信号量empty,它代表的资源是缓冲区空,它的初始值为n,表示缓冲池中所有缓冲区空。 生产者-消费者问题 Shared datasemaphore full=0, empty=n, mutex=1; main() cobegin{ }coend Ci //消费者进程 do { P(full); P(mutex); … remove an item from buffer to nextc … V(mutex); V(empty); … consume the item in nextc … } while (1); Pi //生产者进程 do { … produce an item in nextp … P(empty); P(mutex); … add nextp to buffer … V(mutex); V(full); } while (1); 读者-写者问题The Readers-Writers Problem 一个数据集(如文件)如果被几个并行进程所共享: 有些进程只要求读数据集内容,它称读者 一些进程则要求修改数据集内容,它称写者 几个读者可以同时读些数据集,而不需要互斥 一个写者不能和其它进程(不管是写者或读者)同时访问些数据集,它们之间必须互斥。 信号量及变量设置: 写者与写者及读者需要互斥,用互斥信号量wrt表示,初值为1 readcount变量来记录读者数,初值为0 由于readcount是读者间共享变量,属于临界资源,它也需互斥,设置互斥信号量mutex,初值为1。 读者写者问题: Shared datasemaphore mutex=1, wrt=1;int readcount = 0;// readcount变量来记录读者数 main() cobegin{ Writer process: while(1){ wait(wrt); … writing is performed … signal(wrt); } 读者写者问题: Reader Process: while(1){ wait(mutex); readcount++; if (readcount == 1) wait(wrt); signal(mutex); … reading is performed … wait(mutex); readcount--; if (readcount == 0) signal(wrt); signal(mutex); } }coend 哲学家进餐问题Dining-Philosophers Problem 问题描述(由Dijkstra首先提出并解决) : 5个哲学家围绕一张圆桌而坐,桌子上放着5支筷子,每两个哲学家之间放一支; 哲学家的动作包括思考和进餐,进餐时需要同时拿起他左边和右边的两支筷子,思考时则同时将两支筷子放回原处。 如何保证哲学家们的动作有序
您可能关注的文档
- 松下电视西门子冰箱史密斯热水器.PPT
- 松原地下水水化学参数特征及变化规律-吉林农业大学学报.PDF
- 板块交界带.PPT
- 构建素养导向的教-福建教研网.PDF
- 析取演绎数据库否定信息的推理规则-华侨大学学报自然科学版.PDF
- 林道静卢嘉川.PPT
- 某抽水蓄能电站地下厂房结构加固设计-中国水利水电科学研究院学报.PDF
- 某某某某详细报告-长安大学交通经济与管理试验教学中心.DOC
- 柏庄实小惠山泥人亮相全国非遗校本课程成果展-无锡柏庄试验小学.PDF
- 柔性机械手的动力学方程-华侨大学学报自然科学版.PDF
- 2025北京航空工业集团综合所高层次人才及博士招聘20人笔试参考题库附答案.docx
- 2025安徽亳州市利辛县巡察信息中心遴选5人备考题库附答案.docx
- 2025宁波鄞州区东柳街道编外招聘1人备考题库附答案.docx
- 2025云南楚雄市机关事业单位选调63人备考题库附答案.docx
- 2025北京中国社会科学调查中心招聘劳动合同制人员1人备考题库附答案.docx
- 2025宁波市市场监督管理局局属事业单位宁波市标准化研究院招聘高层次人才1人备考题库附答案.docx
- 2025河南郑州铁路职业技术学院招聘合同制工作人员48人笔试历年题库附答案解析.docx
- 2025云南玉溪市红塔区文化和旅游局招聘办公辅助人员1人备考题库附答案.docx
- 2025山东日照市岚山区卫生健康系统事业单位招聘20人备考题库附答案.docx
- 2025四川九州电子科技股份有限公司招聘车载电子事业部-PQE岗笔试参考题库附答案.docx
最近下载
- LEGO乐高积木拼砌说明书31208,Hokusai–神奈川冲浪里,LEGO®Art(年份2023)安装指南_共2份(全).pdf
- 幼儿园:“听韵律、说词汇、读内涵、写诗句”促进大班幼儿文学想象能力的策略研究.docx
- 危险化学品应急预案.docx VIP
- CJJT147-2010 城镇燃气管道非开挖修复更新工程技术规程.docx VIP
- 物理学导论(吉林大学)中国大学MOOC 慕课 章节测验答案.docx VIP
- 心理成长与发展知到课后答案智慧树章节测试答案2025年春武汉职业技术学院.docx VIP
- 《正常分娩教学》课件.pptx VIP
- 2026年广东省普通高中学业水平合格性考试英语模拟试题(一)解析版.docx VIP
- 2025昆明高新开发投资有限公司文职岗人员招聘参考题库(2人)含答案解析(必刷).docx VIP
- 常用3500汉字瘦金体楷书米字格.pdf VIP
原创力文档


文档评论(0)