- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
13
13
潍坊学院计算机工程学院
课程设计说明书
课程名称: 操作系统课程设计
设计项目: 一哲学家就餐问题— 一
学生姓名: —XXXXXX —
学 号: 1302 门 400XX
专 业: —计算机科学与技术_
班 级: 一班
指导教师: 王红一
2016年 3 月
一、 任务与具体要求
哲学家有N个,规定全体到齐后开始讨论,在讨论的间隙哲学 家进餐,每人进餐时都需使用刀、叉合一把,所有哲学家刀和 叉都拿到后才能进餐。哲学家的人数、餐桌上的布置自行设定, 实现刀和叉的互斥使用算法的程序实现。
二、 设计说明书包括的内容
1.需求分析2.系统概要设计3.系统详细设计4.系统的主要源代码
5.系统测试及调试6.总结7.主要参考文献
三、 应完成的图纸
四、评语及成绩
指导教师(签字)
年—月—日
目录
TOC \o "1-5" \h \z \o "Current Document" 一、 需求分析 1
\o "Current Document" 二、 系统概要设计 2
三、 系统详细设计 3
\o "Current Document" 四、 系统的主要源代码 4
\o "Current Document" 五、 系统测试及调试 9
\o "Current Document" 六、 总结 13
\o "Current Document" 七、 主要参考文献 13
13
13
一、需求分析
有一个故事是这样的:假设有五位哲学家用坐在一张圆形餐桌旁,做以下两 件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也 停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐义。因为 用一只餐义很难吃到意大利面,所以假设哲学家必须用两只餐义吃东西。他们只 能使用自己左右手边的那两只餐义。
上边的故事里有五个哲学家(不过我们写的程序可以有N个哲学家),这些哲 学家们只思考或吃饭,他们思考的时候不需要任何共享资源,但是吃饭的时候就 必须使用餐具,而餐桌上的餐具是有限的,故事里,餐具是叉子,吃饭的时候要 用两把义子把面条从碗里捞出来。很显然把义子换成筷子会更合理,因为一个哲 学家需要两根筷子才能吃饭。
现在引入问题:有六个哲学家很穷,只买得起六根筷子。他们坐成一圈,两 个人的中间放一根筷子。哲学家吃饭的时候必须同时得到左手边和右手边的筷 子。如果他身边的任何一位正在使用筷子,那他只有等着。如下图:
A 4 A
1> 2、3> 4、5、6为哲学家 A为一根筷子
以上就为我们要处理的哲学家就餐问题,接下来将编写程疗:模拟解决这个问 题。
二、系统概要设计
2.1设汁一个程序,能够显示当前各哲学家的状态和桌上餐具的使用情况, 并能无死锁的推算岀一状态各哲学家的状态和桌上餐具的使用情况。即设计一个 能安排哲学家正常生活的程序。
为哲学家设计3种状态,即“等待” “进餐”“思考”。每个哲学家重复进行 “等待”-> “进餐”-> “思考”的行动循环。其中:“等待”-> “进餐”:只有一 个哲学家处于等待进餐状态,且左右手两边的餐具都处于“空闲”状态时,可以 发生这种状态改变。此状态改变发生后,哲学家拿起左右手两边的餐具。“进餐” -> “思考”:此状态改变发生后,哲学家放下左右手上的餐具。餐具状态由“使 用中”转变为“空闲”。“思考”-> “等待”:哲学家思考结束后,无条件转入等 待状态。山上所述,程序中应设置6个元素的信号量数组用来保持哲学家之间的 同步。
2.2系统平台、语言及工具
操作系统:Windows
程序设计语言:C++
工具:VC++6.0
2.3不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进 行访问。每个进程中访问临界资源的那段代码称为临界区(Critical Section)o每 个进程中访问临界资源的那段程序称为临界区(Critical Section)(临界资源是一 次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后 不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须 互斥地对它进行访问。
三、系统详细设计
bool tools[6];
bool tools[6]; 〃全局变量,用餐工具
bool tools[6];
bool tools[6]; 〃全局变量,用餐工具
程序中定义一个哲学家类,
Number 对象:
Status 对象:
包含两个私有对象和四个公有对象。
哲学家的编号。
用于保存当前该哲学家的状态,0表示正在等待(即 处于饥饿状态)1表示得到筷子正在吃饭,2表示正 在思考
Philosopher(int num)方法: find() const 方法: getinfo() const 方法: Cha
您可能关注的文档
- 不完全信息动态博弈.docx
- 部编版二年级语文下册12.寓言二则-教案带反思-优质教案.docx
- 部编版二年级语文下册-人教版二年级下册语文导学案.docx
- 部编本二年级上册语文看拼音写词语一至八单元田字格附参考答案.docx
- 部编人教版(2016)七年级下册语文期中测试题及答案.docx
- 部编新教材七年级下语文期末模拟测试题(一).docx
- 部编一年级上册汉字描写.docx
- 部编一年级下册注音练习.docx
- 部编一下看拼音写词语.docx
- 部门岗位职责及工作流程.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》新版初级练习卷有答案与.docx
- (附答案)川农12月《中药化学》作业考核-.docx
- (附答案)川农12月《园林植物保护学(本科)》作业考核-.docx
- (附答案)川农12月《有机化学(专科)》作业考核-.docx
- (附答案)川农12月《植物保护学(本科)》作业考核-.docx
- (附答案)东师《教育心理学》在线作业2-1(1).docx
- (附答案)川农12月《药剂学》作业考核-.docx
- (附答案)川农12月《配方饲料制造工艺与技术(专科)》作业考核-.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》新版基础知识题库带解析.docx
- 幼儿教师资格证(考试资料)《幼儿保健知识与能力》基础知识模拟押题卷.docx
文档评论(0)