版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计课程设计名称:_专业班级:学生姓名:学号:指导教师:课程设计时间:2010/12/23计算机科学专业课程设计任务书学生姓名专业班级学号题目P、V操作及进程同步的实现2课题性质其它课题来源自拟课题指导教师同组姓名主要内容用语言编程实现P、V原语并用P、V原语哲学家就餐问题:为每个哲学家各编一段程序描述他们的行为,试用P、V操作实现。任务要求掌握信号量通信方式的一般方法,了解系统实现阻塞”和唤醒”功能的方法和技巧。问时掌握进程问步和互斥的概念及实现技术。参W义献任满杰等操作系统原理实用教程电子工业出版社2006汤子瀛计算机操作系统(修订版)西安电子科技大学出版社2001张尧学史美林计算机操
2、作系统教程实验指导清华大学出版社2000罗宇等操作系统课程设计机械工业出版社2005宙查意见指导教师签字:教研室主任签字:年月日说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1需求分析哲学家就餐问题是一种典型的同步问题,它是由Dijstra提出并解决的。该问题描述如下:有五个哲学家,他们的生活方式是交替的进行思考和进餐。哲学家们公用一张圆桌,设5个哲学家分别为A,B,C,D,E,桌子上放着5把筷子,编号分别编号为0,1,2,3,4,桌子中央有一盘饭菜。5个哲学家都很有礼貌,都要等同时拿到身旁的两只筷子才进餐,不然就只是等着继续思考,而且吃了一口之后乂马上放下
3、拿起的两根筷子,继续思考。由丁筷子数目有限,不能让5个哲学家同事进餐,而且甚至只能让其中的少数哲学家进餐,其他的哲学家只能轮流享用。为每个哲学家各编一段程序描述他们的行为,解决哲学家就餐问题。2概要设计源程序中各个函数的作用说明:intReadcountn;intchopstickn;/筷子状态标志voidGetchopstick(intnextw)/拿起筷子函数。nextw为哲学家标号voidDropchopstick(intnextr)/放下筷子函数intselect();intmain()/主函数操作实验结构图:3运行环境硬件环境:基丁Xp的PC软件环境:WindowsXP4开发工具和编
4、程语言开发工具:VisualC+6.0编程语言:VisualC+5详细设计#include<stdio.h>#definen5intin=0;intout=0;intReadcountn;intchopstickn;/筷子状态标志voidGetchopstick(intnextw)/拿起筷子函数。nextw为哲学家标号(printf("第d名哲学家肚子饿了,申请左边的筷子。n”,nextw);if(chopsticknextw-1=0|chopsticknextw-1=nextw)(in=nextw-1;chopstickin=nextw;printf("申请成
5、功!第%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);elseprintf("申请失败!第%d名哲学家只有一支筷子
6、,只好干巴巴的盼着旁边的那位哲学家赶快吃完。n",nextw);elseprintf("申请失败!第d名哲学家没有拿到筷子,只好干巴巴的等着旁边的那位哲学家赶快吃完。n”,nextw);voidDropchopstick(intnextr)/放下筷子函数。(/nextr为放下筷子的哲学家的编号if(Readcountnextr-1!=0)/判断筷子是否已经占用(if(Readcountnextr-1=2)(printf("该名哲学家吃饱啦!准备放下筷子。n");chopsticknextr-1=0;chopsticknextr=0;printf(&quo
7、t;该名哲学家已经放下筷子。n");else(printf("该名哲学家只有一支筷子!又不能吃饭,只好准备放下筷子。n");chopsticknextr-1=0;printf("该名哲学家已经放下筷子。n");elseprintf("该名哲学家没有筷子你还让他放下。你好可恶啊,鄙视一下n");intselect()(inti,nextw,nextr;printf("请输入编号:n1-拿筷子过程n2-放筷子过程n3-退出n");scanf("%d”,&i);switch(i)(case1:
8、printf(-现在进行哲学家拿筷子过程,请输入要申请筷子的哲学家编号(1-5)。n");scanf("%d",&nextw);if(nextw>0)&&(nextw<6)(Getchopstick(nextw);/拿筷子过程elseprintf("输入超出范围,请重新输入!");break;case2:printf("现在进行哲学家放筷子过程,请输入要放筷子的哲学家编号(1-5)。n");scanf("%d",&nextr);if(nextr>0)&am
9、p;&(nextr<6)Dropchopstick(nextr);/放筷子过程elseprintf("输入超出范围,请重新输入!n");break;case3:return(0);default:printf("输入超出范围,请重新输入.n");scanf("%d",&i);return(1);intmain()/主函数操作(printf(-哲学家就餐问题。n规则:每个人只有申请到了左边的筷子才可以申请右边的筷子。n");for(intm=0;m<n;m+)(chopstickm=0;for(in
10、tc=0;c<n;c+)(Readcountc=0;inti;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调试分析实验调试过程中遇到的问题:起初认为这个设计题目还是比较简单的,但实验中还是遇到很多问题,容易绕弯路
11、,实验要求用语言编程实现P、V原语并用P、V原语哲学家就餐问题:为每个哲学家各编一段程序描述他们的行为,试用P、V操作实现。特别是实现阻塞”和唤醒”功能过程中,频繁出错。后来尝试添加chopstickn;/筷子状态标志,解决了不能直观了解筷子状态这个问题。7测试结果源程序算法选择界面运行结果:mhC:DocumentsandSettings'路过桌面、课程设计相关表ftsssc+DebugC|窥则;隹个人只着申请到了左边的筷子才可以申请右边的筷子。请输入编呈一翊模子操作!一-退出拿筷子操作:百学冢也餐问题。WJ:劄个人只有申请到了左边的筷子才可以申请右边的筷子。青输入编号,一-一拿放饬
12、子操作8.,过过号编德快出入台戒退输二-请1-一一-退出几在进行哲学家拿筷子过程.请输入要申请筷子的哲学家编号“TL萼2名哲学家肚TtST,申请左边的筷子。Em请成3!蕴弦哲学耋己经拿起左边一支编号为,筷子,申请右边编号为2的筷子。曰请成功!窜z名哲律衰再皇起右边一支编号为2筷子,开开岱心的吃饭啦I请输入褊w一拿放横子操作一直出放筷子操作:信输入编号:3-一盘由"在进行哲学家放筷子过程,请输入要放筷子的哲学家编号&名皆学室吃饱啦!准备放下筷子。该名昌孕蒙己经放下筷子柄输入编歹一拿放磔子操作2-退出拿筷子失败:-4-0请输入编号:二褊通退出现在进行哲学家拿筷子过程,请输入要申请
13、筷子的哲学家编号号名哲学家肚fiRT.申请左边的筷子*日请成更M誓丰塞已经拿起左边一支编号为何筷子,申请右边兼号为1的筷子,E,请成境童迷皆学蒙再拿起右边一支编号为1筷字,开开心心的朗饭1危!作操;子遗快编放出xtfi.输:有-1请输入编号::二瞩3-退出w.kiT,申请左边的筷子,簧洼曹宰家已经拿起左边一支编号为4筷子,申请右边编号为0的供子.童5名昔幸豪只有一支筷子,只好干巴巴的盼着旁边的男幽哲学家筑快吃完。成在进行哲学家拿筷子过程,请输入要申请筷子的哲学家编号3-泌审请失败I一鬲输入编冠;卜一-字整成子操作2-退出放筷子失败:情输,'场号:3一-退出成在进行哲学家放筷子过程,清输
14、入要放筷子的哲学家编号<l-5>e该名哲学家没有筷子你还让他放下°。你好可恶啊,鄙视一下方情输入编号,卜一翊样子操作2退出退出:请输入编星子操作退出pi*essanykeyCocontinue参考文献1任满杰等,操作系统原理实用教程,电子工业出版社,20063 汤子瀛汤小丹梁红兵等,计算机操作系统(修订版),西安电子科技大学出版社,2001张尧学史美林,计算机操作系统教程实验指导,活华大学出版社,20004 罗宇等,操作系统课程设计,机械工业出版社,2005心得体会本次设计收获很多,基本掌握了信号量通信方式的一般方法,对同步和互斥的概念及实现技术也有了一定理解,特别是设计中用到的系统实现阻塞”和唤醒”功能的方法和技巧。设计过程中遇到的一些问题,通过咨询老师、请教同学都一一解决。以前不太懂的问题也通过本次设计予以解决,本次课程设计让我受益匪浅。信息科学与工程学院课程设计成绩评价表课程名称:操作系统系统原理设计题目:处理机调度程序专业:计算机科学与技术班级:1姓名:学号序号评审项目分数满分标准说明1内容思路清晰,语言表达准确,概念清楚,论点正确;设计方法科学,分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 敏捷项目管理快速响应变化
- 一级建造师水利水电工程实务题
- 民爆安全风险管控手册集
- 未来粮食行业发展对中级保管员能力要求变化分析
- 教育科技发展初级教育技术员的工作部署
- 心理咨询师的咨询计划与实施
- 仓库安全管理制度与执行检查表
- 2025年历史景区保安管理合同协议
- 2025年冷链物流运输合同协议(温控运输时效)
- 2024年中山市教体系统专场招聘事业单位人员考试真题
- 公共基础知识复习资料梳理版
- 《SEM基础知识培训》课件
- 痈病的护理常规
- 三年心理健康课:好好生气-小学-情绪管理
- Unit4 Body Language Using Language 说课稿-2024-2025学年高中英语人教版(2019)选择性必修第一册
- 兼职工作协议书模板2024年
- 焊接机器人操作技术第3章 焊接机器人在线操作
- 2024-2030年中国卷烟市场销售渠道及未来营销策略可行性报告
- 牲畜购买居间合同
- 糖尿病大血管病变
- 《DB32T 3979-2021实验用 斑马鱼 饲育技术条件》
评论
0/150
提交评论