- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
潍坊学院计算机工程学院
课程设计说明书
课程名称:____操作系统课程设计_________________
设计工程:____哲学家就餐问题____________________
学生姓名:_____XXXXXX_________________________
学号:______130211400XX_____________________
专业:______计算机科学与技术________________
班级:______一班___________________________
指导教师:_______王红___________________________
_2016年__3___月
一、任务与具体要求
哲学家有N个,规定全体到齐后开始讨论,在讨论的间隙哲学家进餐,每人进餐时都需使用刀、叉合一把,所有哲学家刀和叉都拿到后才能进餐。哲学家的人数、餐桌上的布置自行设定,实现刀和叉的互斥使用算法的程序实现。
二、设计说明书包括的内容
1.需求分析2.系统概要设计3.系统详细设计4.系统的主要源代码5.系统测试及调试6.总结7.主要参考文献
应完成的图纸
评语及成绩
指导教师〔签字〕_____________
________年____月____日
目录
TOC\o1-3\h\z\u一、需求分析 1
二、系统概要设计 2
三、系统详细设计 3
四、系统的主要源代码 4
五、系统测试及调试 9
六、总结 13
七、主要参考文献 13
一、需求分析
有一个故事是这样的:假设有五位哲学家围坐在一张圆形餐桌旁,做以下两件事情之一:吃饭,或者思考。吃东西的时候,他们就停止思考,思考的时候也停止吃东西。餐桌中间有一大碗意大利面,每两个哲学家之间有一只餐叉。因为用一只餐叉很难吃到意大利面,所以假设哲学家必须用两只餐叉吃东西。他们只能使用自己左右手边的那两只餐叉。
上边的故事里有五个哲学家(不过我们写的程序可以有N个哲学家),这些哲学家们只思考或吃饭,他们思考的时候不需要任何共享资源,但是吃饭的时候就必须使用餐具,而餐桌上的餐具是有限的,故事里,餐具是叉子,吃饭的时候要用两把叉子把面条从碗里捞出来。很显然把叉子换成筷子会更合理,因为一个哲学家需要两根筷子才能吃饭。
1 A
1
A A
62
A A
5 3
A 4A
1、2、3、4、5、6为哲学家A为一根筷子
4
以上就为我们要处理的哲学家就餐问题,接下来将编写程序模拟解决这个问题。
二、系统概要设计
2.1设计一个程序,能够显示当前各哲学家的状态和桌上餐具的使用情况,并能无死锁的推算出一状态各哲学家的状态和桌上餐具的使用情况。即设计一个能安排哲学家正常生活的程序。
为哲学家设计3种状态,即“等待”“进餐”“思考”。每个哲学家重复进行“等待”-“进餐”-“思考”的行动循环。其中:“等待”-“进餐”:只有一个哲学家处于等待进餐状态,且左右手两边的餐具都处于“空闲”状态时,可以发生这种状态改变。此状态改变发生后,哲学家拿起左右手两边的餐具。“进餐”-“思考”:此状态改变发生后,哲学家放下左右手上的餐具。餐具状态由“使用中”转变为“空闲”。“思考”-“等待”:哲学家思考结束后,无条件转入等待状态。由上所述,程序中应设置6个元素的信号量数组用来保持哲学家之间的同步。
2.2系统平台、语言及工具
〔1〕操作系统:Windows
〔2〕程序设计语言:C++
〔3〕工具:VC++6.0
2.3不管是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。每个进程中访问临界资源的那段代码称为临界区〔CriticalSection〕。每个进程中访问临界资源的那段程序称为临界区〔CriticalSection〕〔临界资源是一次仅允许一个进程使用的共享资源〕。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不管是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。
三、系统详细设计
定义信号量
定义信号量
开始
定义哲学家类对象
哲学家们的状态发生改变
输出当前状态图
停止程序?
结束
否
是
程序中定义一个哲学家类,包含两个私有对象和四个公有对象。
Number对象:哲学家的编号。
Status对象
您可能关注的文档
- 教科版9年级物理月考试卷初三1-3章.doc
- 高考作文素材-----哲理小故事.ppt
- 教师企业实践工作报告.doc
- 教学楼毕业设计计算书.doc
- 高压电气运维托管培训课件.ppt
- 高二物理磁场对运动电荷的作用课件.ppt
- 高考语文诗歌鉴赏复习专题一:诗歌形象分析.ppt
- 教师业务能力考试题初中物理.doc
- 教师节手抄报(A4横版).doc
- 教育学思维导图.docx
- 2025四川省德阳经开区招聘社区专职8人备考题库参考答案详解.docx
- 2025四川银行分支机构对公专项社会招聘备考题库完整参考答案详解.docx
- 2025天津渤海银行总行交易银行部国际业务中心招聘备考题库完整答案详解.docx
- 2025四川天府银行社会招聘备考题库(攀枝花)及答案详解(全国通用).docx
- 2025四川天府银行社会招聘备考题库(西充)附答案详解(夺分金卷).docx
- 2025吉林吉林市舒兰市总工会招聘工会社会工作者8人备考题库附答案详解(夺分金卷).docx
- 2025四川达州银行选聘副行长1人备考题库含答案详解(满分必刷).docx
- 2025四川广元市利州区选聘社区工作者50人备考题库含答案详解(培优b卷).docx
- 2025大连银行营口分行招聘2人备考题库及答案详解(最新).docx
- 2025四川乐山市公安局第四批次警务辅助人员招聘40人备考题库含答案详解(a卷).docx
原创力文档


文档评论(0)