




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作品名称:操作系统进程管理设计论文桂林电子科技大学操作系统进程管理设计论文目 录1设计目的、意义和背景11.1设计的背景11.2设计的目的11.3设计的意义12设计思想及详细设计过程22.1设计的思想22.2设计的详细过程22.2.1算法设计22.2.2具体各功能模块设计32.2.3关键代码33作品测试结果63.1测试数据63.2测试结果73.3结果分析94问题与总结94.1设计中所遇到的问题及其解决94.2尚存在的问题104.3设计过程的总结与体会105系统说明115.1所需的运行环境115.2参考资料115.3自我评价11桂林电子科技大学操作系统进程管理设计论文第11页1 设计目的、意义和背景1.1 设计的背景随着计算机的广泛应用,很多的软件安装在计算机上,是计算机运行的程序进程越来越多;很多程序在运行时常出现异常(如不能正常结束,占用大量资源,发现异常的进程等)。这些现象给我们的计算机使用及管理带来很多的不便。而进行进程管理设计能增强自己对进程管理的了解。进程能准确,动态地刻画计算机系统内部的并发性,解决系统资源的共享,在操作系统的发展史上,进程较早地被引入,在理论研究和设计实现上均发挥这重要的作用。进程使得操作系统的结构变得清晰,主要表现在:一个进程到另一个进程的控制转移由进程调度机制来统一管理,不能随意进行;进程之间的交互(如信号发送,信息传递和同步互斥等活动)有通信及同步机制完成,从而进程无法破坏其他进程的数据,每个进程相对独立,相互隔离,提高了系统的安全性和可靠性。因而,基于进程概念的操作系统的结构清晰,整齐统一,可维护性好。1.2 设计的目的1) 加深对进程概念的理解,明确进程和程序的区别及进程管理各部分内容的理解。2) 进一步认识并发执行的实质。3) 熟悉进程管理中进程的创建,进程调度算法、进程控制机构、进程互斥,进程各状态之间的相互转换。4) 学习通过进程执行新的目标程序的方法。5) 了解系统中进程信号处理的基本原理。1.3 设计的意义进行进程管理设计能增强自己对系统进程的了解,能够使自己综合运用以前所学的知识的能力,同时也使自己了解当前软件编程的一些新技术,锻炼自己的实际动手能力,对自己以后工作能力的培养具有重要的意义。2 设计思想及详细设计过程2.1 设计的思想进程管理(处理机管理)是操作系统中的非常重要的部分,为深入理解进程管理部分的功能,进程管理模拟系统的设计的目的是加深对进程概念及进程管理各部分内容的理解;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构、同步机构及通信机构实施。在多道程序或多任务系统中,系统同时处于就绪状态的进程又若干个。也就是说能运行的进程数目要远远大于处理机的个数,为了使系统中的各个进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占用处理机,故要设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有简单的进程控制、同步与通信机构,其进程调度算法可任意选择。每个进程用一个pcb表示,其内容根据具体情况设置。各进程之间有一定的同步关系(可选)。系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察诸进程的运行过程及系统的管理过程。在我的实际设计开发中并没有达到以上全部要去,只是在控制台下了模拟了一部分功能,在操作系统中,最核心的概念就是并发,而进程是并发执行的实体。考虑到时间比较紧,以及我对这门语言的熟悉程度,我仅仅打算实现模拟进程调度的功能,允许用户输入一系列进程,并自动按照先后顺序排队,放入就绪队列,可以模拟多种进程调度算法的实现,打印输出进程调度完毕的状态及各种参数,有的算法可以动态的显示调度过程。2.2 设计的详细过程2.2.1 算法设计1) 进程定义:用每个进程是一个结构体,结构体中定义进程名,进程状态,进程id号,进程优先级,进程需运行的时间,进程已运行的时间,指向下一个进程的指针。2) 功能:程序中设有内联函数,打印就绪进程函数,打印阻塞进程函数,判断进程是否结束函数,排序进程函数,唤醒进程函数,运行进程函数。2.2.2 具体各功能模块设计l 进程创建(用来存储进程信息):进程号,进程名,进程优先级,需要运行时间。typedef struct pcb char name10; /进程名 char state; /状态 int id; /id号 int super; /优先级 int ntime; /需运行的时间 int rtime; /已运行的时间 struct pcb *next; *pcb1;l 打印就绪进程队列:void print();l 打印阻塞进程队列:void print1();l 判断进程是否结束:int check();l 对进程进行优先排列:void sort(pcb1 &r,pcb1 p);l 判断就绪队列是否为空:void block();l 唤醒进程函数:void wake();l 运行进程:void runing();l 输入进程: void input();2.2.3 关键代码运行代码:void runing() if(empty(s) pcb1 p; p=s; if(check()s=s-next; p-rtime+; p-super-; p-next=null; sort(s,p); else s=s-next; else cout就绪队列已经为空!next=null) sort(w,s); s=s-next; else pcb1 p1; p1=s; s=s-next; p1-next=null; sort(w,p1); else cout现在就绪队列已经为空,再没有进程需要阻塞!next; p1-next=null; sort(s,p1); else cout阻塞队列已经为空,没有进程再需要唤醒!super=r-super) p-next=r; r=p; else p1=r; p2=r-next; if(p2=null) r-next=p; else while(in=0&p2!=null) if(p-super=p2-super) p-next=p2; p1-next=p; in=1; else p1=p1-next; p2=p2-next; if(in=0) p1-next=p; 3 作品测试结果3.1 测试数据测试数据:l 创建进程 :输入“c”,并输入进程号,进程名,进程优先级,需要运行时间, 创建4个进程,数据如下:1,test1,1,102,test2,2,203,test3,3,304,test4,4,40l s(查看就绪状态) w(唤醒进程) z(阻塞进程)l(查看阻塞状态) r(运行进程)w(唤醒进程) s(查看就绪状态) l(查看阻塞状态)q(退出程序)3.2 测试结果运行程序,界面显示,并输入进程信息,包括进程号,进程名,进程优先级,需要运行时间:选择功能,查看就绪队列的信息:选择唤醒程序功能:阻塞进程,并查看就绪对列:运行进程:唤醒进程:退出程序:3.3 结果分析首先创建进程,并按优先级高低排列到队列中,优先级高的排到队列的队头;通过查看就绪函数查看就绪进程的信息,这时,所有的进程都是属于就绪状态;再通过唤醒函数进行唤醒进程,这时所有进程都属于就绪状态,没有需要唤醒的进程;通过阻塞函数阻塞当前进程,这是阻塞队列中有1个被阻塞的进程,就绪状态就有3个就绪函数;再通过运行进程,这时有2个进程被阻塞,2个进程位于就绪队列;再通过唤醒进程将被阻塞的进程唤醒。出现等待事件落选选中等待事件完成阻塞态运行态就绪态4 问题与总结4.1 设计中所遇到的问题及其解决l 想借鉴之前我们做过的实验,但是因为自己的电脑没有安装linux系统,只有安装了虚拟机,而虚拟机运行的程序又保存不到自己的系统中,所以只好写了一个在windows中能够运行的模拟进程管理的c+程序。l 在设计之初,没有想好要用什么来存储进程信息,之后在网上看见一个用c+写的进程管理的程序,它里面用的是结构体来储存,所以就借鉴了他的写法。l 至于在设计进程运行的等待状态的时候没有想到要用什么来反映进程的等待状态,在翻阅了孙钟秀主编的操作系统教程后,发现可以用队列来表示。4.2 尚存在的问题l 界面不算美观,需加强界面的整理。l 功能太少,不能充分体现进程的睡眠、同步、撤消等进程控制方法。4.3 设计过程的总结与体会在这几天设计这个进程管理的时候,我有这么以下几点体会:1. 一开始要先把总体设计搞好,把思路都理清,但不要一开始就固执于细节的实现,否则可能最后发现设计非常混乱,程序难于调试,以至于不得不重头开始设计。2. 在做的过程中要及时总结,随时记录开发过程。总之,在编写代码的过程中遇到问题是不可避免的,尤其是使用的像c+这种具有指针的语言,在写出问题代码之前,我们应该谨小慎微,在得到语言的灵活性的同时也降低编译器排查错误的精确度,在出了问题后的解决只有靠自己的经验和技巧了。3. 还有,我很庆幸自己能坚持下来,在设计得过程中确实遇到了很多很多的问题,有些真的很难解决,但是不能被面前的困难吓倒,要敢于去坚持,去拼搏,编写程序有时候通宵达旦是很正常的,要勇于付出。4. 而且我还发现,很多情况下能否成功完成某项任务并不依赖于会多少,而是要看是否具有快速学习以及触类旁通的能力,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西中马投控集团招聘42人考前自测高频考点模拟试题及答案详解(全优)
- 2025江西吉安市七叶荆文化旅游有限公司招聘安排模拟试卷附答案详解(完整版)
- 2025年安徽皖信人力招聘管内客运站12名安检工作人员考前自测高频考点模拟试题有完整答案详解
- 2025年南平邵武市医疗单位医疗类储备人才引进8人模拟试卷及答案详解(典优)
- 2025江西赣州市第五人民医院劳务派遣招聘助理护士20人模拟试卷附答案详解(黄金题型)
- 2025年宁波市鄞州区第二医院医共体招聘第二批高层次紧缺人才13人考前自测高频考点模拟试题及答案详解(必刷)
- 2025吉林长春经济技术开发区人民法院面向社会招聘审判辅助人员聘用人员模拟试卷有完整答案详解
- 2025年湖南永州市冷水滩区人民法院招聘9名聘用制审判辅助人员考前自测高频考点模拟试题完整参考答案详解
- 2025广东惠州龙门县教育局招聘教师80人考前自测高频考点模拟试题及完整答案详解
- 2025年南平邵武市立医院护理岗位招聘考前自测高频考点模拟试题有完整答案详解
- 2025内蒙古鄂尔多斯市国源矿业开发有限公司招聘75人备考考试题库附答案解析
- 2025年专升本政治试题真题及答案
- 幽门螺杆菌课件
- 元代文学-课件
- 水利法规基础知识培训课件
- 包装材质基础知识培训课件
- 2025至2030中国生产监控行业项目调研及市场前景预测评估报告
- 养老护理员学习汇报
- (新人教PEP版)英语五年级上册全册大单元教学设计
- 小儿急性阑尾炎护理查房
- 环卫车司机管理制度
评论
0/150
提交评论