操作系统课程设计哲学家进餐问题报告 课程设计报告(本科)课程:操作系统课程设计学号:姓名:班级:老师:时间:20_ 1
27-20_ 1
7 计算机科学与技术系;设计名称:哲学家进餐问题设计内容、目的与要求:实验目的:通过实现哲学家进餐问题的同步深化了解和掌握进程同步和互斥的原理
内容和要求:哲学家有 N 个,也定全体到达后开始讨论:在讨论的间隙哲学家进餐,每人进餐时都需使用刀、叉各一把,所有哲学家刀和叉都拿到后才能进餐
哲学家的人数 、餐桌上的布置自行设定,实现刀和叉的互斥使用算法的程序实现
计划与进度安排:1:设置初始条件(12 月 17 号) (1)操作系统:wndows (2)程序设计语言:C (3)设定圆桌上有六个哲学家,三对刀叉
2:详细设计:(12 月 18 号至 1 月 6 号) (1):设计一个程序,能够显示当前各哲学家的状态和桌上餐具的使用情况,并能无死锁的推算出下一状态各哲学家的状态和桌上餐具的使用情况
即设计一个能安排哲学家正常生活的程序
(2):为哲学家设计 3 种状态,即“等待”“进餐”“思考”
每个哲学家重复进行“等待”-“进餐”-“思考”的行动循环
(3):确定程序模块
(4):编写程序
(5):调试修改
(6):结果分析
设计过程、步骤(可加页): 1
分工:汤正愿:课题分析,模块设计,主函数的编写;洪 XX:课题分析,模块设计,子函数的编写
确 定 数 据 结 构 Phlosopher-number:nt-status:nt Phlosopher(nnum:nt) fndconst:nt getnfoconst:nt Change:vod 图 3-1 哲学家类的 UML 图程序中定义一个哲学家类,包含两个私有对象和四个公有对象
Number 对象:报讯哲学家的编号
Status 对象:用于保存当前该哲学家