




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计课程设计名称: 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间: 2010/12/23 计算机科学 专业课程设计任务书学生姓名专业班级学号题 目P、V操作及进程同步的实现2课题性质其它课题来源自拟课题指导教师同组姓名主要内容用语言编程实现P、V原语并用P、V原语哲学家就餐问题:为每个哲学家各编一段程序描述他们的行为,试用P、V操作实现。任务要求 掌握信号量通信方式的一般方法,了解系统实现“阻塞”和“唤醒”功能的方法和技巧。同时掌握进程同步和互斥的概念及实现技术。参考文献任满杰等操作系统原理实用教程 电子工业出版社 2006汤子瀛 计算机操作系统(修订版)西安电子科技大学出版社 2001张尧学 史美林计算机操作系统教程实验指导 清华大学出版社 2000 罗宇等 操作系统课程设计机械工业出版社 2005审查意见指导教师签字:教研室主任签字: 年 月 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1 需求分析哲学家就餐问题是一种典型的同步问题,它是由Dijstra提出并解决的。该问题描述如下:有五个哲学家,他们的生活方式是交替的进行思考和进餐。哲学家们公用一张圆桌,设5个哲学家分别为A,B,C,D,E,桌子上放着5把筷子,编号分别编号为0,1,2,3,4,桌子中央有一盘饭菜。5个哲学家都很有礼貌,都要等同时拿到身旁的两只筷子才进餐,不然就只是等着继续思考,而且吃了一口之后又马上放下拿起的两根筷子,继续思考。由于筷子数目有限,不能让5个哲学家同事进餐,而且甚至只能让其中的少数哲学家进餐,其他的哲学家只能轮流享用。为每个哲学家各编一段程序描述他们的行为,解决哲学家就餐问题。2 概要设计源程序中各个函数的作用说明:int Readcountn;int chopstickn;/筷子状态标志void Getchopstick(int nextw)/拿起筷子函数。 nextw为哲学家标号void Dropchopstick(int nextr)/放下筷子函数int select();int main()/主函数操作实验结构图:主函数放下筷子函数拿起筷子函数就餐结果3 运行环境硬件环境:基于Xp的PC软件环境:Windows XP4 开发工具和编程语言开发工具:Visual C+ 6.0编程语言:Visual C+5 详细设计#include#define n 5int in=0;int out=0;int Readcountn;int chopstickn;/筷子状态标志void Getchopstick(int nextw)/拿起筷子函数。 nextw为哲学家标号 printf(第%d名哲学家肚子饿了,申请左边的筷子。n,nextw); if(chopsticknextw-1=0|chopsticknextw-1=nextw) in=nextw-1; chopstickin=nextw; printf(申请成功!第%d名哲学家已经拿起左边一支编号为%d筷子,申请右边编号为%d的筷子。n,nextw,in,(in+1)%n); in=(in+1)%n; Readcountnextw-1=Readcountnextw-1+1; if(chopstickin=0|chopstickin=nextw) chopstickin=nextw; Readcountnextw-1=Readcountnextw-1+1; printf(申请成功!第%d名哲学家再拿起右边一支编号为%d筷子,开开心心的吃饭啦!n,nextw,in); else printf(申请失败!第%d名哲学家只有一支筷子,只好干巴巴的盼着旁边的那位哲学家赶快吃完。n,nextw); else printf(申请失败!第%d名哲学家没有拿到筷子,只好干巴巴的等着旁边的那位哲学家赶快吃完。n,nextw);void Dropchopstick(int nextr)/放下筷子函数。 / nextr为放下筷子的哲学家的编号 if(Readcountnextr-1!=0)/判断筷子是否已经占用 if(Readcountnextr-1=2) printf(该名哲学家吃饱啦!准备放下筷子。n); chopsticknextr-1=0; chopsticknextr=0; printf(该名哲学家已经放下筷子。n); else printf(该名哲学家只有一支筷子!又不能吃饭,只好准备放下筷子。n); chopsticknextr-1=0; printf(该名哲学家已经放下筷子。n); else printf(该名哲学家没有筷子你还让他放下。你好可恶啊,鄙视一下n);int select()int i,nextw,nextr;printf(请输入编号:n1-拿筷子过程n2-放筷子过程n3-退出n);scanf(%d,&i);switch(i)case 1: printf(现在进行哲学家拿筷子过程,请输入要申请筷子的哲学家编号(1-5)。n); scanf(%d,&nextw); if(nextw0)&(nextw0)&(nextr6) Dropchopstick(nextr);/放筷子过程 else printf(输入超出范围,请重新输入!n);break;case 3:return(0);default:printf(输入超出范围,请重新输入.n); scanf(%d,&i);return(1);int main()/主函数操作 printf(哲学家就餐问题。n规则:每个人只有申请到了左边的筷子才可以申请右边的筷子。n); for(int m=0;mn;m+) chopstickm=0; for(int c=0;cn;c+) Readcountc=0; int i;printf(请输入编号:n1-拿放筷子操作n2-退出n);scanf(%d,&i);while(i!=2)select();printf(n);printf(请输入编号:n1-拿放筷子操作n2-退出n);printf(n);scanf(%d,&i);return(1);6 调试分析实验调试过程中遇到的问题:起初认为这个设计题目还是比较简单的,但实验中还是遇到很多问题,容易绕弯路,实验要求用语言编程实现P、V原语并用P、V原语哲学家就餐问题:为每个哲学家各编一段程序描述他们的行为,试用P、V操作实现。特别是实现“阻塞”和“唤醒”功能过程中,频繁出错。后来尝试添加chopstickn;/筷子状态标志,解决了不能直观了解筷子状态这个问题。7 测试结果源程序算法选择界面运行结果:拿筷子操作:放筷子操作:拿筷子失败:放筷子失败:退出:参考文献1任满杰等,操作系统原理实用教程, 电子工业出版社 , 2006 3汤子瀛 汤小丹 梁红兵等,计算机操作系统(修订版),西安电子科技大学出版社 ,20014张尧学 史美林,计算机操作系统教程实验指导 ,清华大学出版社 ,2000 5罗宇等 ,操作系统课程设计,机械工业出版社 , 2005心得体会本次设计收获很多,基本掌握了信号量通信方式的一般方法,对同步和互斥的概念及实现技术也有了一定理解,特别是设计中用到的系统实现“阻塞”和“唤醒”功能的方法和技巧。设计过程中遇到的一些问题,通过咨询老师、请教同学都一一解决。以前不太懂的问题也通过本次设计予以解决,本次课程设计让我受益匪浅。信息科学与工程 学院课程设计成绩评价表课程名称:操作系统系统原理设计题目:处理机调度程序专业:计算机科学与技术 班级: 1 姓名: 学号 序号评审项目分 数满分标准说明1内 容思路清晰,语言表达准确,概念清楚,论点正确;设计方法科学,分析归纳合理;结论严谨,设计有应用价值。任务饱满,工作量适中2创 新内容新颖,设计能反映新技术,对前人工作有改进或突破,或有独特见解3完整性、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册会计师考试《会计》金融工具会计处理模拟试题解析
- 2025年造价工程师案例分析模拟试卷:建筑工程造价咨询机构行业新闻试题
- 2025年大学融合教育专业题库- 农村地区融合教育的促进作用分析
- 2025年初中学业水平考试地理模拟卷:乡土地理特色试题及答案
- 2025年中医药学经典著作习题练习答案及解析
- 2025年大学体育教育专业题库- 运动解剖学在体育教育专业中的应用
- 2025年大学科学教育专业题库- STEM教育模式在大学中的实践
- 2025年大学国内安全保卫专业题库- 安全保卫专业学生安全技能培养
- 2025年大学融合教育专业题库- 融合教育在智能时代的发展
- 2025年人工智能工程师人工智能在金融行业的试题
- 卫生政策学之政策问题根源分析
- 步进电机及其工作原理-电机的工作原理及特性课件
- 基于CAN通讯的储能变流器并机方案及应用分析报告-培训课件
- 腹直肌分离康复(产后康复课件PPT)
- 聚合物成型的理论基础课件
- 药监系统官方培训06细菌内毒素方法介绍-蔡彤
- 慢性中耳炎的并发症课件
- 灭火器每月定期检查及记录(卡)表
- 千米、分米和毫米的认识单元备课
- 药品生产质量管理工程完整版课件
- 人工智能(AI)在人力资源领域的应用与展望
评论
0/150
提交评论