在生产者—消费者问题中应注意:首先,在每个程序中用于实现互斥的wait(mutex)和signal(mutex)必须成对地出现; 其次,对资源信号量empty和full的wait和signal操作,同样需要成对地出现,但它们分别处于不同的程序中。例如,wait(empty)在计算进程中,而signal(empty)则在打印进程中,计算进程若因执行wait(empty)而阻塞, 则以后将由打印进程将它唤醒;最后,在每个程序中的多个wait操作顺序不能颠倒。应先执行对资源信号量的wait操作,然后再执行对互斥信号量的wait操作,否则可能引起进程死锁。 精选编制 2. 利用AND信号量解决生产者—消费者问题 ar mutex, empty, full:semaphore∶ =1, n, 0; buffer:array[0, …, n-1] of item; in out:integer∶ =0, 0; begin parbegin producer:begin repeat … produce an item in nextp; … Swait(empty, mutex); buffer(in)∶ =nextp; in∶ =(in+1)mod n; Ssignal(mutex, full); until false; end 精选编制 consumer:begin repeat Swait(full, mutex); nextc∶ =buffer(out); out∶ =(out+1) mod n; Ssignal(mutex, empty); consumer the item in nextc; until false; end parend end 精选编制 2.4.2 哲学家进餐问题 1. 利用记录型信号量解决哲学家进餐问题 经分析可知,放在桌子上的筷子是临界资源,在一段时间内只允许一位哲学家使用。为了实现对筷子的互斥使用,可以用一个信号量表示一只筷子,由这五个信号量构成信号量数组。其描述如下: Var chopstick: array[0, …, 4] of semaphore; 精选编制 所有信号量均被初始化为1, 第i位哲学家的活动可描述为: repeat wait(chopstick[i]); wait(chopstick[(i+1) mod 5]); … eat; … signal(chopstick[i]); signal(chopstick[(i+1) mod 5]); … think; until false; 精选编制 可采取以下几种解决方法: (1) 至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕时能释放出他用过的两只筷子,从而使更多的哲学家能够进餐。 (2) 仅当哲学家的左、右两只筷子均可用时,才允许他拿起筷子进餐。 (3) 规定奇数号哲学家先拿他左边的筷子,然后再去拿右边的筷子;而偶数号哲学家则相反。按此规定,将是1、 2号哲学家竞争1号筷子;3、4号哲学家竞争3号筷子。即五位哲学家都先竞争奇数号筷子,获得后,再去竞争偶数号筷子,最后总会有一位哲学家能获得两只筷子而进餐。 精选编制 2. 利用AND信号量机制解决哲学家进餐问题 在哲学家进餐问题中,要求每个哲学家先获得两个临界资源(筷子)后方能进餐,这在本质上就是前面所介绍的AND同步问题,故用AND信号量机制可获得最简洁的解法。 Var chopsiick array [0, …, 4] of semaphore∶ =
您可能关注的文档
- 第三章 软件项目进度管理演示课件.ppt
- 第三章 逃生自救篇演示课件.ppt
- 第三章 项目策划演示课件.ppt
- 第三章 项目范围管理演示课件.ppt
- 第三章商业银行流动性管理演示课件.ppt
- 第三章执行元件演示课件.ppt
- 第三章演示课件.ppt
- 第三章热水采暖系统..演示课件.ppt
- 第三章矩阵的标准型演示课件.ppt
- 第三章误差和分析数据的处理演示课件.ppt
- 卫星与无人系统融合:智慧城市建设的新引擎.docx
- 税务师考试《财务与会计》巩固要点详解(2026年).docx
- 农业机械电动化与农村微电网协同运行机制设计.docx
- 2026年鹤壁汽车工程职业学院单招职业适应性考试模拟测试卷必考题.docx
- 2026年鹰潭职业技术学院单招综合素质考试模拟测试卷完美版.docx
- 2026年齐齐哈尔理工职业学院单招职业技能测试题库完整.docx
- 2026年黑龙江冰雪体育职业学院单招职业倾向性测试模拟测试卷及答案1套.docx
- 2026年黔南民族职业技术学院单招职测考试题库含答案.docx
- 2026年齐齐哈尔理工职业学院单招职业技能测试题库完整.docx
- 工业工程建设实施方案.pdf
原创力文档

文档评论(0)