资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
操作系统实验(一),哲学家就餐问题,一、问题描述,有五个哲学家围坐在一圆桌旁,桌中央有一盘通心粉,每人面前有一只空盘子,每两人之间放一只筷子。每个哲学家的行为是思考,感到饥饿,然后吃通心粉。为了吃通心粉,每个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子,二.分配方式,方式一(不会进入死锁)仅当一个哲学家左右两边的筷子都可用时,才允许他拿筷子。这样要么一次占有两只筷子(所有线程需要的资源)进行下一步的吃通心粉,然后释放所有的资源;要么不占用资源,这样就不可能产生死锁了。,方式二(会进入死锁)当筷子(资源)可用时,先分配左边的筷子,等待一会后再分配右边的筷子,由于这个过程中,左边的筷子一直没有释放,就有可能产生死锁了。,三.程序运行说明,程序运行过程中会弹出一个消息框提示操作者操作: 1第一个对话框用于选择运行模式a选择yes 表示采用的是运行的防止死锁的方式,这样 的话整个程序可以一直运行下去,不会产生死锁。b选择no 表示运行产生死锁的方式会弹出第二个对话框。 2第二个对话框用于选择运行时,线程运行的时间a. 选择 yes 线程时间比较短,很快就可以死锁b选择no 线程时间跟选择yes 时候的时间差不多,产生死锁的时间稍微长一点,diningDebugDining.exe,四.程序代码分析:,diningDining.dsw,五.实验要求,熟悉哲学家就餐问题流程 熟悉 PhilosopherThread(LPVOID pVoid)函数,写出其伪代码(写入实验报告) 在VC+6.0环境下编译哲学家就餐问题演示程序,考虑其他解决死锁方法(思考题) 课后完成实验报告,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号