基于VC6.0和MFC实现的操作系统哲学家进餐问题

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

一 需求分析

一个圆桌上有一大碗面,5个盘子,5把筷子,5个座位上可以座5个哲学家,当哲学家就坐以后,其左右有且仅有一个筷子,每个筷子左又有且仅有一个哲学家。哲学家动作:思考,取筷(需要两个),取面,吃面。现设计一个礼仪以允许他们就餐,需要避免两个哲学家“抢”同一把筷子,又要避免饥饿和死锁。

通过设计,编写,调试一个简单的进程调度模拟系统,对进程调度,进程运行状态变换及wait原语和signal原语加深理解和掌握。

二 程序设计

程序流程图如下所示:

三 程序实现

3.1 实现原理

  • 互斥解决。每一把筷子使用一个2元信号量,只有获得信号量的哲学家才能使用筷子,从而避免对筷子的“抢夺”

点击此处下载文档和源码
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值