一 需求分析
一个圆桌上有一大碗面,5个盘子,5把筷子,5个座位上可以座5个哲学家,当哲学家就坐以后,其左右有且仅有一个筷子,每个筷子左又有且仅有一个哲学家。哲学家动作:思考,取筷(需要两个),取面,吃面。现设计一个礼仪以允许他们就餐,需要避免两个哲学家“抢”同一把筷子,又要避免饥饿和死锁。
通过设计,编写,调试一个简单的进程调度模拟系统,对进程调度,进程运行状态变换及wait原语和signal原语加深理解和掌握。
二 程序设计
程序流程图如下所示:


三 程序实现
3.1 实现原理
-
互斥解决。每一把筷子使用一个2元信号量,只有获得信号量的哲学家才能使用筷子,从而避免对筷子的“抢夺”
-

本文通过设计一个进程调度模拟系统来解决经典的哲学家就餐问题,确保哲学家们既能顺利就餐又不会发生死锁现象。利用2元信号量来管理筷子的使用权限,实现了互斥访问。
2271

被折叠的 条评论
为什么被折叠?



