《操作系统课程设计进程管理系统.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计进程管理系统.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、操作系统课程设计报告题目:专业:班级:姓名:学号:指导老师: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;
2、delete p;return f;)void queue:display()queuenode *p;p=front;while (p!=NULL) coutdata/z;p=p-link;cout/zNULL/z;queue:find (char item) queuenode *w;w=front;M: while(w!=NULL)if (item=w-data) return 1;break;)else w=w-link;goto M;)if(w=NULL) return 0;void queue:del ( char item) queuenode *q,*b;q=front;whi
3、le (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; elseb-link=q-link; delete q;void main()int n;char a;cout,n操作系统之进程治理模拟系统(先来先效劳算法)n/zendl;queue execute, ready, clog; 执行,就绪,阻塞cout,n请用户输入进程名及其到达cpu的顺序(结束进程数请输Ax) nz,endl;char r; r=x; fo
4、r(int i=0;i+) char e100;cout输入进程名:ei;if (ei !=r)ready, enqueue (ei);elsebreak;)A: coutz/n 请(学号)用户(姓名)选择操作八n;cout/zn K执行进程2、将阻塞队列中进程调入就绪队列n;cout/zn 3、封锁进程4、结束进程nz,;coutn;if (n=l)if(!execute, isempty (). Oa已经有进程在执行!,此操作不能执行n;char w;cOutendl;cout如果要继续请输入#;如果要退出按其它任意键endl;coutw;if (w二二#) goto L;else got
5、o 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
6、;else if(n=4)(coutn请输入要结束的进程名:; cina;if (execute, find (a) | | ready, 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/zn 结束进程成功! nendl;goto L;elsecout 没有此进程n endl;goto L;if (n=l|n=21|n=31|n=4)(cout 执行队列endl;execute, display (
7、);coutendl;cout就绪队列 “endl;ready, display ();coutendl;cout 阻塞队列 ff endl;clog.display ();coutendl;goto A;elseif (n=5);elsen你的输入错误! n;gtoAcoutNULL请学号)用户姓名选择操作一一1、执行进程2、将阻塞队列中进程调久就绪队列3、封锁进程3、封锁进程心结束进程15、退出程序.选项:2执行队列a-NULL就绪队列!b-c-de - f-NUI.L阻塞队列ML请学号用户姓名)选择操作口、执行进程2、将阻塞队列中进程调入就绪队列I3,封锁进程*结束进程I5、退出程序丁一
8、;,一 一一一.:二:丁 选项,3执行队列鞫ULL就绪队列h-c-d-c-f-NULL阻塞以列a-HULL请学号用户姓名?选择操作J1、执行进程 2、将阻塞队列中进程调入就绪队列J3.封锁进程4.结束进程二二二,77.16、退出程序3选项:4 ,输入要结束的进程名:d 串进程成功!自行队列NULL就绪队列b-c-e-f-NULL坦塞队列aAHULL请学号用户姓名)选择操作人执行进程几将阻塞队列中进程调入就绪队列.封锁进程A结束进程,6 .退出程序选项:5Press any key to continue五、用户使用说明用户通过VC+即可运行改程序.需说明的是主函数是实现进程治理的入 口,在入口
9、处需输入进程名称,然后输入进程的状态选项,如果完毕后,那么通?操作系统?课程设计任务书一、课程设计题目(任选一个题目)1 .模拟进程治理2 .模拟处理机调度3 .模拟存储器治理4 .模拟文件系统5 .模拟磁盘调度二、设计目的和要求1 .设计目的?操作系统原理?课程设计是计算机科学与技术专业实践性环节之一,是学习 完?操作系统原理?课程后进行的一次较全面的综合练习.其目的在于加深对 操作 系统的理论、方法和根底知识的理解,掌握操作系统结构、实现机理和各种典型 算法,系统地了解操作系统的设计和实现思路,培养学生的系统设计水平,并了解 操作系统的开展动向和趋势.2 .根本要求:(1)选择课程设计题目
10、中的一个课题,独立完成.(2)良好的沟通和合作水平(3)充分运用前序课所学的软件工程、程序设计、数据结构等相关知识(4)充分运用调试和排错技术(5)简单测试驱动模块和桩模块的编写(6)查阅相关资料,自学具体课题中涉及到的新知识.(7)课题完成后必须按要求提交课程设计报告,格式标准,内容详实.三、设计内容及步骤1根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么.过相应的调度算法进行进程机的调度,同时也将结果显示在屏幕上.本次实验通过模拟多个进程的同步运行,实现了进程就绪,运行,阻塞三 个 状态的转换,并可以根据用户要求改变进程的状态.六、附录及参考资料1王红,?操作系统实训?,中国水
11、利水电出版社,20052张红光,?UNIX操作系统试验教程?,机械工程出版社,20063史美林,?操作系统教程?,清华大学,2006殷兆麟,?计算机操作系统?,北京大学,20075严蔚敏,?数据结构C语言版)?,清华大学,20072 .根据实现的功能,划分出合理的模块,明确模块间的关系.3 .编程实现所设计的模块.4 .程序调试与测试.采用自底向上,分模块进行,即先调试低层函数.能够 熟 练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它 或 绕过它.调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程 序清 单和结果;5 .结果分析.程序运行结果包括正确的输入及其输
12、出结果和含有错误的输入 及其输出结果.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
13、%,验收40%,设计报告占30%.1 .设计表现:教师可依据学生使用实验环境的水平、观察和分析实验现象的 水平、实验结果和数据的正确性以及学生的课堂纪律、实验态度、保持实验室卫 生等方面的表现进行综合考核.2 .验收:要求学生演示设计的程序,讲解设计思路、方法、解决的主要问题, 教师根据具体情况向每个学生提问2至3个问题.3 .设计报告:学生设计后应按时完成设计报告和实验报告.要求:内容充实、 写作标准、工程填写正确完整、书面整洁等.目录一、需求分析6.进一步理解进程的根本概念61 .增强进程治理的设计及算法 6.观察和治理进程6二、概要设计6.实验原理61 .数据结构6.算法描述62 .算法
14、流程图7三、详细设计8.源程序代码8四、调试分析及测试结果 15五、用户及用说明17六、附录或参考资料17一、需求分析1 .进一步理解进程的根本概念.2 .增强进程治理中主要数据结构的设计及进程调度算法.3 .观察和治理进程一一系统在运行过程中可显示或打印各进程的状态及有 关参数的变化情况.二、概要设计1 .实验原理定义PCB的数据结构,用链表的形式治理进程,采用多级反应队列调度的算 法模拟进程的限制,最终完成有创立、撤销、调度、阻塞、唤醒进程等功能.2 .数据结构类:class queuenodeclass queue函数:void enqueue( char &item);char deq
15、ueue();void del(char item);void display();int find(char item);int isempty()4 .算法描述1-1、创立进程,根据进程的顺序依次放入就绪队列.2-1、执行进程一一治理系统将就绪队列中的第一个进程调入运行队列;2-2、将阻塞队列中进程调入就绪队列;2-3、封锁进程一一治理系统将就绪队列中的第一个进程调入阻塞队列;2-4、结束进程一一治理系统撤销所选进程;2-5、结束程序.5 .算法流程图三、详细设计1.源程序代码#include class queuenodefriend class queue;private:char d
16、ata;queuenode * link;d=0,queuenode1=NULL):queuenode (chardata(d), link (1) ;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 isemptyO return front=NULL; private:queuenode *front, *rear;);queue:queue()