欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    操作系统课程设计(进程管理)(13页).doc

    • 资源ID:37848727       资源大小:151KB        全文页数:13页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统课程设计(进程管理)(13页).doc

    -操作系统课程设计(进程管理)-第 13 页操作系统课程设计报告题 目:进程管理专 业: 班 级: 姓 名: 学 号: 指导老师: 年 月 日操作系统课程设计任务书一、课程设计题目(任选一个题目)1.模拟进程管理2.模拟处理机调度3.模拟存储器管理4.模拟文件系统5.模拟磁盘调度二、设计目的和要求1.设计目的操作系统原理课程设计是计算机科学与技术专业实践性环节之一,是学习完操作系统原理课程后进行的一次较全面的综合练习。其目的在于加深对操作系统的理论、方法和基础知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。2.基本要求:(1)选择课程设计题目中的一个课题,独立完成。(2)良好的沟通和合作能力(3)充分运用前序课所学的软件工程、程序设计、数据结构等相关知识(4)充分运用调试和排错技术(5)简单测试驱动模块和桩模块的编写 (6)查阅相关资料,自学具体课题中涉及到的新知识。(7)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。三、设计内容及步骤1.根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么。2.根据实现的功能,划分出合理的模块,明确模块间的关系。3.编程实现所设计的模块。4.程序调试与测试。采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;5.结果分析。程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。6.编写课程设计报告;设计报告和实验报告要求:A4纸和实验报告册,详细设计部分主要叙述本人的工作内容设计报告的格式:(1)封面(题目、指导教师、专业、班级、姓名、学号)(2)设计任务书(3)目录(4)需求分析(5)概要设计(6)详细设计(含主要代码)(7)调试分析、测试结果(8)用户使用说明(9)附录或参考资料四、进度安排设计在第四学期的第1-18周(共18课时)进行,时间安排如下:序号内 容时间(课时)1系统分析22设计43编码、测试104验收2 合计18五、成绩评定办法成绩分为优(A)、良(B)、中(C)、及格(D)、不及格(E)五个等级。其中设计表现占30%,验收40%,设计报告占30%。1.设计表现:教师可依据学生使用实验环境的能力、观察和分析实验现象的能力、实验结果和数据的正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。2.验收:要求学生演示设计的程序,讲解设计思路、方法、解决的主要问题,教师根据具体情况向每个学生提问2至3个问题。3.设计报告:学生设计后应按时完成设计报告和实验报告。要求:内容充实、写作规范、项目填写正确完整、书面整洁等。目录一、 需求分析61.进一步理解进程的基本概念 62.加强进程管理的设计及算法 6 3.观察和管理进程 6二、 概要设计61实验原理62数据结构63. 算法描述64. 算法流程图7三、 详细设计81源程序代码8四、 调试分析及测试结果 15五、 用户及用说明 17六、 附录或参考资料 17一、需求分析1.进一步理解进程的基本概念。2.加强进程管理中主要数据结构的设计及进程调度算法。 3.观察和管理进程系统在运行过程中可显示或打印各进程的状态及有关参数的变化情况。二、概要设计1实验原理定义PCB的数据结构,用链表的形式管理进程,采用多级反馈队列调度的算法模拟进程的控制,最终完成有创建、撤销、调度、阻塞、唤醒进程等功能。2数据结构类:class queuenodeclass queue函数:void enqueue( char &item);char dequeue();void del(char item);void display();int find(char item);int isempty()3.算法描述1-1、创建进程,根据进程的顺序依次放入就绪队列。2-1、执行进程管理系统将就绪队列中的第一个进程调入运行队列;2-2、将阻塞队列中进程调入就绪队列;2-3、封锁进程管理系统将就绪队列中的第一个进程调入阻塞队列;2-4、结束进程管理系统撤销所选进程;2-5、结束程序。4. 算法流程图输入进程信息执行进程将阻塞队列的进程调入就绪队列封锁进程结束进程退出操作输入要进行操作的功能选项12345进行所选进程操作选1且进程正在执行Y操作不能执行选择#NNN选择5YY开始结束三、详细设计1源程序代码#include<iostream.h>class queuenodefriend class queue;private:char data;queuenode * link;queuenode (char d=0,queuenode * l=NULL): data(d),link(l)class queuepublic:queue():rear(NULL),front(NULL);queue();void enqueue( char &item);char dequeue();void del(char item);void display();int find(char item);int isempty()return front=NULL;private:queuenode *front,*rear;queue:queue()queuenode * p;while(front!=NULL)p=front;front=front->link;delete p;void queue:enqueue(char &item)if(front=NULL)front=rear=new queuenode(item,NULL);else rear=rear->link=new queuenode(item,NULL);char queue:dequeue()queuenode *p=front; char f=p->data;front=front->link;delete p;return f;void queue:display()queuenode *p;p=front;while(p!=NULL)cout<<p->data<<"->" p=p->link;cout<<"NULL"queue:find(char item) queuenode *w; w=front;M:while(w!=NULL) if(item=w->data) return 1;break;elsew=w->link;goto M;if(w=NULL) return 0;void queue:del( char item) queuenode *q,*b; q=front; while(q->data!=item) b=q;q=q->link; if(q=front) front=front->link; delete q; else if(q=rear) rear=b;rear->link=NULL;delete q; else b->link=q->link; delete q;void main()int n;char a;cout<<"n-操作系统之进程管理模拟系统(先来先服务算法)-n"<<endl;queue execute,ready,clog; /执行,就绪,阻塞cout<<"n-请用户输入进程名及其到达cpu的顺序(结束进程数请输入x)-n"<<endl; char r;r='x'for(int i=0;i+)char e100;cout<<"输入进程名:"<<" "cin>>ei;if(ei!=r)ready.enqueue(ei);elsebreak;A: cout<<"n -请(学号)用户(姓名)选择操作-n" cout<<"n 1、执行进程2、将阻塞队列中进程调入就绪队列n" cout<<"n 3、封锁进程4、结束进程 n" cout<<"n 5、退出程序 n选项: " cin>>n; if(n=1) if(!execute.isempty () cout<<"已经有进程在执行!,此操作不能执行n" char w; cout<<endl; cout<<"如果要继续请输入#;如果要退出按其它任意键"<<endl; cout<<"要选择的操作:" cin>>w; if(w='#')goto L; else goto E; else if(!ready.isempty() a=ready.dequeue(); if(a!=r) execute.enqueue(a); goto L; else goto L; else if(n=2) if(!clog.isempty() a=clog.dequeue (); if(a!=r) ready.enqueue(a); goto L; else goto L; else if(n=3) if(!execute.isempty() a=execute.dequeue (); if(a!=r) clog.enqueue(a); goto L; else goto L; else if(n=4) cout<<"n请输入要结束的进程名: " cin>>a; if(execute.find (a)|ready.find (a)|clog.find (a) if(execute.find(a) execute.del(a); else if(ready.find(a) ready.del(a); if(clog.find(a) clog.del(a); cout<<"n结束进程成功!n"<<endl; goto L; else cout<<"没有此进程"<<endl; goto L; L: if(n=1|n=2|n=3|n=4) cout<<"执行队列"<<endl; execute.display(); cout<<endl; cout<<"就绪队列"<<endl; ready.display();cout<<endl; cout<<"阻塞队列"<<endl; clog.display();cout<<endl; goto A; else if(n=5); else cout<<"n你的输入错误!n" goto A; E:; 四、调试分析及测试结果五、用户使用说明用户通过VC+ 即可运行改程序。需说明的是主函数是实现进程管理的入口,在入口处需输入进程名称,然后输入进程的状态选项,如果完毕后,则通过相应的调度算法进行进程机的调度,同时也将结果显示在屏幕上。 本次实验通过模拟多个进程的同步运行,实现了进程就绪,运行,阻塞三个状态的转换,并可以根据用户要求改变进程的状态。六、附录及参考资料1王红 ,操作系统实训,中国水利水电出版社,20052张红光,UNIX操作系统试验教程,机械工程出版社,20063史美林,操作系统教程,清华大学,20064殷兆麟,计算机操作系统,北京大学,20075严蔚敏,数据结构(C语言版),清华大学,2007

    注意事项

    本文(操作系统课程设计(进程管理)(13页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开