电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

操作系统课程设计说明指导书基于Linu的进程之间通信样本

操作系统课程设计说明指导书基于Linu的进程之间通信样本_第1页
1/45
操作系统课程设计说明指导书基于Linu的进程之间通信样本_第2页
2/45
操作系统课程设计说明指导书基于Linu的进程之间通信样本_第3页
3/45
操作系统课程设计说明指导书基于Linu 的进程之间通信中北大学操作系统课程设计说 明 书 学 院 、 系 :软件学院专 业 :软件工程学 生 姓 名:学 号:设 计 题 目 :基于 Linux 的进程之间通信 实现信号量通信机制(哲学家进餐) 起 迄 日 期 :2025 年 12 月 28 日- 2025 年 1 月 8 日指 导 教 师 :何志英 2025 年 12 月 25 日1 需求分析:设计内容:(1) 实现管道通信,要求见 P183 习题(3)。(2) 实现信号量通信机制,要求见 P191习题(3)。(3) 实现消息缓冲通信机制,要求见P197 习题。(4) 实现共享内存区通信机制,要求见P201 习题(2)。要求:(1) 用 Linux 中进程控制系统调用函数来创建进程(线程)。(2) 输出进程通信时同步的说明信息。:(2) 实现信号量通信机制,要求见 P191 习题(3)。::设有 5 个哲学家,共享一张放有 5 把椅子和 5 把叉子的圆桌,每人分得一把椅子。哲学家们在肚子饥饿时才试图分两次从两边捡起两把叉子就餐。条件:,哲学家才能吃饭,则哲学家必须等到他人吃完后才能拿起叉子,绝不放下自己手中的叉子:?答:当 5 个哲学家每人手中都拿到了 1 把叉子(共 5 把),即不肯放下自己手中的叉子又想要得到左右邻居的叉子时,每个哲学家永远拿不到两把叉子,所有哲学家都在等待另一把叉子,就会导致这 5 个哲学家谁都吃不上饭。也就是产生死锁后的情况。(永远拿不到两个叉子)的算法。答:程序请看代码实现。分析:没有人饿死,就是不允许出现死锁的情况(5 个哲学家每人 1 把叉子):,最终保证至少有一位哲学家能够进餐,并且在用毕时能释放出他用过的两只叉子,从而使更多哲学家能够进餐;,才允许他拿起叉子进餐;,然后再去拿他右边的叉子,而偶数号哲学家则相反。五位哲学家都先竞争奇数号叉子,获得后再竞争偶数号叉子,最终总有一位哲学家会因为获得两只叉子而进餐。我采纳的解决死锁的方法是第二种,即在哲学家拿起叉子前先推断他左右邻居的情况,只要左右邻居中有一位正在进餐(叉子已经被邻居拿到,邻居进餐结束前自己无法获得其叉子),就不允许其拿起叉子进餐,这就可以预防死锁的情况发生。:根据题目要求,需要调用 Linux 操作系统函数使用信号量机制完成对哲学家进餐问题的求解,要求所有哲学家都能吃到食物,并且要防止哲学家在竞争叉子过程发生死锁。程序应该包含如下功能::哲学家在进餐前和进餐后处于思考...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

操作系统课程设计说明指导书基于Linu的进程之间通信样本

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部