- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
经典进程同步互斥问题集
Generated by Foxit PDF Creator © Foxit Software For evaluation only. 【例1】有三个进程PA、PB 和PC 协作解决文件打印问题:PA 将文件记录从磁盘读入内存的 缓冲区 1 中,每执行一次读一个记录;PB 将缓冲区 1 中的内容复制到缓冲区2 中,每执行一次复 制一个记录;PC 将缓冲区 2 中的内容打印出来,每执行一次打印一个记录。缓冲区的大小与记录 大小一样。请用信号量来保证文件的正确打印。 答:该文件打印过程的同步算法可描述如下: var empty1,full1,empty2,full2:semaphore := 1,0,1,0 ; begin parbegin PA:begin repeat 从磁盘读一个记录; wait(empty1); 将记录存放到缓冲区 1 中; signal(full1); until false end PB:begin Repeat wait(full1); 从缓冲区1 中取出一个记录; signal(empty1); wait(empty2); 将记录复制到缓冲区2 中; signal(full2); until false end PC:begin repeat wait(full2); 从缓冲区2 中取出一个记录; signal(empty2); 将取出的记录打印出来; until false end parend end 【例2 】进程A1 、A2、…An1 通过m 个缓冲区向进程B1 、B2、…Bn2 不断地发送消息。发送 和接收工作遵循如下规则: (1)每个发送进程一次发送一个消息,写入一个缓冲区,缓冲区大小与消息长度一样。 (2 )对于每一个消息,B1 、B2 、…Bn2 都需各接收一次,读入自己的数据区内。 (3 )m 个缓冲区都满时,发送进程等待;没有可读的消息时,接收进程等待。 试用wait,signal 操作描述它们的同步关系。 分析:本题是生产者-消费者问题的一个变形。由于每个缓冲区都只写一次,但要读 n2 次, 故我们可将每个缓冲区看成是由n2 格组成的。只有当某个缓冲区的n2 格都空闲时,才允许写入, 1 Generated by Foxit PDF Creator © Foxit Software For evaluation only. 而且写一次缓冲区相当于将该缓冲区的n2 格全部写一遍。Bj 进程从缓冲中取消息时,它只取相应 缓冲的第j 格。由于每个Bj 取消息的速度不同,故需为它们分别设置指针outj,用来指示从哪个缓 冲区的第j 格中取消息。 答:我们将每个缓冲区看成是由n2 格组成的,可为本题设置下列信号量:mutex,初值为1,用 来实现对缓冲区的互斥访问;empty[i](i
文档评论(0)