- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
经典同步问题经典进程同步问题
6.* OSC 经典同步问题 经典进程同步问题 经典进程同步问题是从进程并发执行中归纳的典型例子。主要的经典同步问题有生产者-消费者问题、读者-写者问题、哲学家进餐问题等。 生产者-消费者问题(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支筷子,每两个哲学家之间放一支; 哲学家的动作包括思考和进餐,进餐时需要同时拿起他左边和右边的两支筷子,思考时则同时将两支筷子放回原处。 如何保证哲学家们的动作有序进行?如:不出现相邻者同时要求进餐;不出现有
您可能关注的文档
- 消费者保护给移民的-nycgov.pdf
- 消费者保护与我国金融监管体制之完善研究-暨南大学学报.pdf
- 消费者权益保护法-中国人民大学出版社电子邮件系统.ppt
- 深入贯彻落实科学发展观重点一.ppt
- 深化改革提升质量-碧江教育.doc
- 深圳关于全科医师规范化培训学员-南昌大学第一附属医院.doc
- 深圳仁爱医院-安康友好妇科医院-人流医院-妇科医院.doc
- 深圳大学汉语言文学专业本科培养方案07-深圳大学文学院.doc
- 深圳文科园林股份有限公司防范大股东及其他关联方资金占用制度.pdf
- 深圳杰创新成电子有限公司.ppt
- 《GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法》.pdf
- GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法.pdf
- 中国国家标准 GB/T 46383.302-2025电气运输设备 第3-2部分:载物电气运输设备移动性能测试方法.pdf
- 《GB/T 31270.7-2025化学农药环境安全评价试验准则 第7部分:生物富集试验》.pdf
- GB/T 31270.7-2025化学农药环境安全评价试验准则 第7部分:生物富集试验.pdf
- 《GB 5135.2-2025自动喷水灭火系统 第2部分:湿式报警阀、延迟器、水力警铃》.pdf
- GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法.pdf
- 《GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法》.pdf
- 中国国家标准 GB/T 19412-2025蓄冷(热)空调系统的测试和评价方法.pdf
- GB/T 46611-2025电光调制器用铌酸锂单晶薄膜.pdf
原创力文档


文档评论(0)