操作系统课程设计 哲学家进餐问题.doc
文本预览下载声明
PAGE 4
哲学家进餐问题课程设计(学年设计、学年论文)任务书
学 院
计算机信息与工程学院
专 业
计算机科学与技术
课程名称
操作系统
题 目
哲学家进餐问题
完成期限
自2014年6月3日至2014年6月30日共4周
内
容
及
任
务
一、项目的目的
(1)通过实现哲学家进餐问题的同步,深入了解和掌握进程同步和互斥的原理。
(2)了解并掌握利用信号量解决资源死锁问题。
(3)加强对c++语言的编写能力。
二、项目任务的主要内容和要求
设计一个程序,能够显示当前各哲学家的状态和桌上餐具的使用情况,并能无死锁的推算出下一状态各哲学家的状态和桌上餐具的使用情况
项目设计(研究)思路
本次设计包括了总体设计,模块设计,以及程序编写等步骤,主要研究哲学家进餐问题,利用记录信号量避免产生资源死锁问题,设计时候首先总体需求分析,其次模块求精,最后测试编写的程序,采用了在windows环境下的c++语言解决哲学家进餐问题。
具体成果形式和要求
程序最后能够显示五个哲学家和五支筷子的状态,能够清楚显示资源是否释放,以及各哲学家对资源的竞争。
进
度
安
排
起止日期
工作内容
6月3至6月10
总体设计思想的分析
6月10至6月17日
从总体到部分,了解程序所需的变量以及函数,对模块进行分析。
6月17日至6月30日
根据总体和模块的分析,编写程序,并且对程序进行编译和测试。
主
要
参
考
资
料
1.汤小丹,计算机操作系统[第三版],西安电子科技出版社,2007;
2.黄干平,陈洛资,等.计算机操作系统.北京:科学出版社,1989;
3.李勇,陈恩林.计算机体系结构.长沙:国防科技大学出版;
4.黄祥喜,计算机操作系统实验教程.广州:中山大学出版社,1994.
指导教师
意见
(签字): 年 月 日
系(教研室)主任意见
(签字): 年 月 日
哲学家进餐问题设计说明书(或论文)
(封面)
学院名称: 计算机信息与工程学院
班级名称: 2012级计算机科学与技术
学生姓名: 操飞飞
学 号: 2012211296
题 目: 哲学家进餐问题
指导教师
姓 名: 马丽生
起止日期:2014年6月3日至2014年6月30日
目 录
TOC \o 1-3 \h \u 32467 第一部分:正文部分 1
11843 一、选题背景 1
15630 二、 设计思路 1
(1) 32648 总体设计思想 1
22772 (2)资源互斥问题 1
25043 三、过程论述 2
28679 (1)数据结构 2
12243 (2)程序模块 3
13783 四、 结果分析 6
3664 (1)程序开始执行状态 6
22507 (2)哲家状态图 6
13271 (3)程序结束图 8
7596 五、结论(或总结) 9
第二部分:参考文献……………………………………………………………………………9
14864 第三部分: 指导教师评语 10
28878 第四部分:成绩评定 10
9742 附录 11
PAGE
PAGE 1
第一部分:正文部分
一、选题背景
哲学家进餐问题
由Dijkstra提出并解决的哲学家进餐问题(The Dinning Philosophers Problem)是典型的同步问题,该问题是描述有五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五只筷子,他们的生活方式是交替地进行思考和进餐,平时,一个哲学家进行思考,饥饿时便试图取用其左右最靠近他的筷子,只有在他拿到两只筷子时才能进餐,进餐毕,放下筷子继续思考.
此次课程设计的主要内容是模拟实现资源分配。同时要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,设计一个程序,能够显示当前各哲学家的状态和桌上餐具的使用情况,并能无死锁的推算出下一状态各哲学家的状态和桌上餐具的使用情况。
设计思路
(1)总体设计思想
为哲学家设计3种状态,即“等待”“进餐”“思考”。每个哲学家重复进行“等待”-“进餐”-“思考”的行动循环。其中:
“等待”-“进餐”:只有一个哲学家
显示全部