- 0
- 0
- 约7.27千字
- 约 29页
- 2024-02-25 发布于四川
- 举报
第二章作业1、用记录型信号量实现不会死锁的哲学家问题。考虑了三种实现的方式(A、B、C):
A.原理:至多只允许四个哲学家同时进餐,以保证至少有一个哲学家能够进餐,最终总会释放出他所使用过的两支筷子,从而可使更多的哲学家进餐。以下将S作为信号量,只允许4个哲学家同时就餐,这样就能保证至少有一个哲学家可以就餐,而申请就餐的哲学家进入S的等待队列,根据FIFO的原则,总会轮到就餐,因此不会出现饿死和死锁的现象。semaphorechopstick[5]={1,1,1,1,1};
semaphores=4;
voidphilosopher(inti)
{
while(true)
{
think();
wait(s);//请求就餐
wait(chopstick[i]);//请求左手边的筷子
wait(chopstick[(i+1)%5]);//请求右手边的筷子
eat();
signal(chopstick[(i+1)%5]);//释放右手边的筷子
signal(chopstick[i]);//释放左手边的筷子
signal(s);//就餐完毕,释放信号量
}
}
B.原理:仅当哲学家的左右两支筷子都可用时,才允许他拿起筷子进餐。
方法1:利用AND型信号量机制实现:方法2:利用信号量的保护机制实现。通过信号量mutex对eat()
您可能关注的文档
- 制定发展措施.ppt
- 软件测试winrunner实验报告.docx
- 二年级语文下册语文园地三第二课时.ppt
- 数独快速入门及数独技巧.docx
- 危险源辨识和风险评价.ppt
- 第四章李氏稳定性.ppt
- 必背古诗词-爱国词人辛弃疾.ppt
- 第四章-学习动机.ppt
- 玻璃工艺学第四章.ppt
- 英语诗歌选读第四章.ppt
- 浙江省九江市2027届四年级数学第一学期期末检测模拟试题含解析.doc
- 柳州市柳南区2027届四年级数学第一学期期末学业质量监测模拟试题含解析.doc
- 2027届贵州省毕节地区大方县六年级数学第一学期期末质量跟踪监视模拟试题含解析.doc
- 2027届延安市吴旗县六年级数学第一学期期末学业质量监测模拟试题含解析.doc
- 济阳县2027届数学四上期末学业水平测试试题含解析.doc
- 2027届嘉祥县六上数学期末经典模拟试题含解析.doc
- 2027届辽宁省鞍山市立山区四上数学期末质量检测试题含解析.doc
- 山西省忻州市神池县2027届四上数学期末复习检测模拟试题含解析.doc
- 江苏省南京市玄武区2027届四年级数学第一学期期末学业质量监测模拟试题含解析.doc
- 河南省安阳市内黄县多校2027届四上数学期末检测模拟试题含解析.doc
原创力文档

文档评论(0)