《操作系统课程设计进程管理系统.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计进程管理系统.docx(19页珍藏版)》请在优知文库上搜索。
1、操作系统课程设计报告题目:专业:班级:姓名:学号:指导老师:?操作系统?课程设计任务书一、课程设计题目(任选一个题目)1 .模拟进程治理2 .模拟处理机调度3 .模拟存储器治理4 .模拟文件系统5 .模拟磁盘调度二、设计目的和要求1 .设计目的?操作系统原理?课程设计是计算机科学与技术专业实践性环节之一,是学习完?操作系统原理?课程后进行的一次较全面的综合练习.其目的在于加深对操作系统的理论、方法和根底知识的理解,掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计水平,并了解操作系统的开展动向和趋势.2 .根本要求:(1)选择课程设计题目中的一个课
2、题,独立完成.(2)良好的沟通和合作水平(3)充分运用前序课所学的软件工程、程序设计、数据结构等相关知识(4)充分运用调试和排错技术(5)简单测试驱动模块和桩模块的编写(6)查阅相关资料,自学具体课题中涉及到的新知识.(7)课题完成后必须按要求提交课程设计报告,格式标准,内容详实.三、设计内容及步骤1.根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么.2 .根据实现的功能,划分出合理的模块,明确模块间的关系.3 .编程实现所设计的模块.4 .程序调试与测试.采用自底向上,分模块进行,即先调试低层函数.能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它
3、.调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;5 .结果分析.程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果.6 .编写课程设计报告;设计报告和实验报告要求:A4纸和实验报告册,详细设计局部主要表达本人的工作内容设计报告的格式:(D封面(题目、指导教师、专业、班级、姓名、学号)(2)设计任务书目录(4)需求分析(5)概要设计(6)详细设计(含主要代码)(7)调试分析、测试结果(8)用户使用说明(9)附录或参考资料四、进度安排设计在第四学期的第1-18周(共18课时)进行,时间安排如下:序号内容时间(课时)1系统分析22设计43编码、测试104验
4、收2合计18五、成绩评定方法成绩分为优(八)、良(B)、中(C)、及格(D)、不及格(E)五个等级.其中设计表现占30%,验收40%设计报告占30%.1 .设计表现:教师可依据学生使用实验环境的水平、观察和分析实验现象的水平、实验结果和数据的正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核.2 .验收:要求学生演示设计的程序,讲解设计思路、方法、解决的主要问题,教师根据具体情况向每个学生提问2至3个问题.3 .设计报告:学生设计后应按时完成设计报告和实验报告.要求:内容充实、写作标准、工程填写正确完整、书面整洁等.目录一、需求分析61 .进一步理解进程的根本概念62
5、.增强进程治理的设计及算法63 .观察和治理进程6二、概要设计61 数据结构63 .算法描述64 .算法流程图7三、详细设计81 .源程序代码8四、调试分析及测试结果15五、用户及用说明17六、附录或参考资料17一、需求分析1 .进一步理解进程的根本概念.2 .增强进程治理中主要数据结构的设计及进程调度算法.3 .观察和治理进程一一系统在运行过程中可显示或打印各进程的状态及有关参数的变化情况.二、概要设计1 .实验原理定义PCB的数据结构,用链表的形式治理进程,采用多级反应队列调度的算法模拟进程的限制,最终完成有创立、撤销、调度、阻塞、唤醒进程等功能.2 .数据结构类:classqueueno
6、declassqueue函数:voidenqueue(char&item);chardequeue();voiddel(charitem);voiddisplay();intfind(charitem);intisempty()4.算法描述1-1、创立进程,根据进程的顺序依次放入就绪队列.2-1、执行进程一一治理系统将就绪队列中的第一个进程调入运行队列;2-2、将阻塞队列中进程调入就绪队列;2-3、封锁进程一一治理系统将就绪队列中的第一个进程调入阻塞队列;2-4、结束进程一一治理系统撤销所选进程;2-5、结束程序.5.算法流程图开始三、详细设计1.源程序代码ftincludeclassqueu
7、enodefriendclassqueue;private:chardata;queuenode*link;I=NULL):queuenode(chard=0,queuenodedata(d),Iink(I);classqueue(public:queueO:rear(NULL),front(NULL);queue();voidenqueue(char&item);chardequeue();voiddel(charitem);voiddisplay();intfind(charitem);intisempty()(returnfront=NULL;private:queuenode*fron
8、t,*rear;);queue:requeue()queuenode*p;whiIe(front!=NULL)(p=front;front=front-link;deletep;)voidqueue:enqueue(char&item)(if(front-NULL)front=rear=newqueuenode(item,NULL);elserear=rear-link=newqueuenode(item,NULL);charqueue:dequeue()(queuenode*p=front;charf=p-data;front=front-link;deletep;returnf;voidq
9、ueue:!display()(queuenode*p;p=front;whiIe(p!=NULDCOUtdata”;p=p-link;)COUtdata)return1;break;)elsew=w-link;gotoM;if(w=NULL)return0;voidqueue:del(charitem)queuenode*q,*b;q=front;while(q-data!=item)b=q;q=q-link;)if(q=front)front=front-link;deleteq;elseif(q=rear)rear=b;rear-link=NULL;deleteq;elseb1ink=q
10、-link;deleteq;voidmain()intn;chara;cout11操作系统之进程治理模拟系统(先来先效劳算法)n”enc11;queueexecute,ready,clog;执行,就绪,阻塞coutzzn请用户输入进程名及其到达CPU的顺序(结束进程数请输Ax)nzzendl;charr;r-x;for(inti-0;i+)chare100;cout输入进程名:ei;if(ei!=r)ready,enqueue(ei);elsebreak;)A:cout,z11请(学号)用户(姓名)选择操作n”;coutn1、执行进程2、将阻塞队列中进程调入就绪队列.n;cout,n3、封锁进
11、程4、结束进程nzz;CoUtn;if(!execute,isempty().OaG已经有进程在执行!,此操作不能执行n;charw;cutendl;cout如果要继续请输入#;如果要退出按其它任意键Gend1;coutw;if(w=#)gotoL;elsegotoE;)else(if(!ready,isempty()(a=ready.dequeue();if(a!=r)execute,enqueue(a);gotoL;elsegotoL;)elseif(n=2)if(!clog,isempty()a=clog.dequeue();if(a!=r)ready,enqueue(a);gotoL;
12、)elsegotoL;elseif(n=3)(if(!execute,isempty()(a=execute.dequeue();if(a!=r)clog,enqueue(a);gotoL;)elsegotoL;elseif(n=4)(CoUtn请输入要结束的进程名:;cina;if(execute,find(a)ready,find(a)clog.find(a)if(execute,find(a)execute,del(a);)elseif(ready,find(a)ready,del(a);if(clog,find(a)clog,del(a);COUtn结束进程成功!rcndl;gotoL
13、;)elsecout没有此进程endl;gotoL;if(n=ln=2n=3n=4)(coutr,执行队列“endl;execute,display();coutendl;COUt“就绪队列“endl;ready,display();coutendl;cout阻塞队列,endl;clog,display();coutendl;gotoA;)elseif(n=5);elsecoutfn你的输入错误!n;gotoA;)E:1)四、调试分析及测试结果操作系统之进程治理模拟系统先来先效劳算法:一请用尸输入进程名及其到达的顺序(结束进程数请输入幻一ah Cd e rx X R :智的玲 = 王寺王Rg壬圣二产 T*, d4月、1, *NULL请(学号)用户(姓