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