操作系统专业课程设计进程管理.doc
《操作系统专业课程设计进程管理.doc》由会员分享,可在线阅读,更多相关《操作系统专业课程设计进程管理.doc(19页珍藏版)》请在咨信网上搜索。
操作系统 课程设计报告 题 目:进程管理 专 业: 班 级: 姓 名: 学 号: 指引教师: 年 月 日 《操作系统》课程设计任务书 一、课程设计题目(任选一种题目) 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 系统分析 2 2 设计 4 3 编码、测试 10 4 验收 2 共计 18 五、成绩评估办法 成绩分为优(A)、良(B)、中(C)、及格(D)、不及格(E)五个级别。其中设计体现占30%,验收40%,设计报告占30%。 1.设计体现:教师可根据学生使用实验环境能力、观测和分析实验现象能力、实验成果和数据对的性以及学生课堂纪律、实验态度、保持实验室卫生等方面体现进行综合考核。 2.验收:规定学生演示设计程序,解说设计思路、办法、解决重要问题,教师依照详细状况向每个学生提问2至3个问题。 3.设计报告:学生设计后应准时完毕设计报告和实验报告。规定:内容充实、写作规范、项目填写对的完整、书面整洁等。 目录 一、 需求分析………………………………………………6 1.进一步理解进程基本概念 …………………………6 2.加强进程管理设计及算法 …………………………6 3.观测和管理进程 ………………………………………6 二、 概要设计………………………………………………6 1.实验原理………………………………………………6 2.数据构造………………………………………………6 3. 算法描述………………………………………………6 4. 算法流程图……………………………………………7 三、 详细设计………………………………………………8 1.源程序代码……………………………………………8 四、 调试分析及测试成果 ………………………………15 五、 顾客及用阐明 ………………………………………17 六、 附录或参照资料 ……………………………………17 一、需求分析 1.进一步理解进程基本概念。 2.加强进程管理中重要数据构造设计及进程调度算法。 3.观测和管理进程——系统在运营过程中可显示或打印各进程状态及关于参数变化状况。 二、概要设计 1.实验原理 定义PCB数据构造,用链表形式管理进程,采用多级反馈队列调度算法模仿进程控制,最后完毕有创立、撤销、调度、阻塞、唤醒进程等功能。 2.数据构造 类: class queuenode class 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. 算法流程图 输入进程信息 执行进程 将阻塞队列进程调入就绪队列 封锁进程 结束进程 退出操作 输入要进行操作功能选项 1 2 3 4 5 进行所选进程操作 选1且进程正在执行 Y 操作不能执行 选取# N N N 选取5 Y Y 开始 结束 三、详细设计 1.源程序代码 #include<iostream.h> class queuenode { friend class queue; private: char data; queuenode * link; queuenode (char d=0,queuenode * l=NULL):data(d),link(l){} }; class queue { public: 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; } else { w=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 e[100]; cout<<"输入进程名:"<<" "; cin>>e[i]; if(e[i]!=r) ready.enqueue(e[i]); else break; } 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]王红 ,《操作系统实训》,中华人民共和国水利水电出版社, [2]张红光,《UNIX操作系统实验教程》,机械工程出版社, [3]史美林,《操作系统教程》,清华大学, [4]殷兆麟,《计算机操作系统》,北京大学, [5]严蔚敏,《数据构造(C语言版)》,清华大学,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 专业课程 设计 进程 管理
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文