ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:279.08KB ,
资源ID:17226573      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17226573.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统进程管理论文Word格式文档下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统进程管理论文Word格式文档下载.docx

1、4)学习通过进程执行新的目标程序的方法。5)了解系统中进程信号处理的基本原理。1.3设计的意义进行进程管理设计能增强自己对系统进程的了解,能够使自己综合运用以前所学的知识的能力,同时也使自己了解当前软件编程的一些新技术,锻炼自己的实际动手能力,对自己以后工作能力的培养具有重要的意义。2设计思想及详细设计过程2.1设计的思想进程管理(处理机管理)是操作系统中的非常重要的部分,为深入理解进程管理部分的功能,进程管理模拟系统的设计的目的是加深对进程概念及进程管理各部分内容的理解;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构、同步机构及通信机构实施。在多道程序或多任务系统中,系统同时处

2、于就绪状态的进程又若干个。也就是说能运行的进程数目要远远大于处理机的个数,为了使系统中的各个进程能有条不紊地运行,必须选择某种调度策略,以选择一进程占用处理机,故要设计一个允许n个进程并发运行的进程管理模拟系统。该系统包括有简单的进程控制、同步与通信机构,其进程调度算法可任意选择。每个进程用一个PCB表示,其内容根据具体情况设置。各进程之间有一定的同步关系(可选)。系统在运行过程中应能显示或打印各进程的状态及有关参数的变化情况,以便观察诸进程的运行过程及系统的管理过程。在我的实际设计开发中并没有达到以上全部要去,只是在控制台下了模拟了一部分功能,在操作系统中,最核心的概念就是并发,而进程是并发

3、执行的实体。考虑到时间比较紧,以及我对这门语言的熟悉程度,我仅仅打算实现模拟进程调度的功能,允许用户输入一系列进程,并自动按照先后顺序排队,放入就绪队列,可以模拟多种进程调度算法的实现,打印输出进程调度完毕的状态及各种参数,有的算法可以动态的显示调度过程。2.2设计的详细过程2.2.1算法设计1)进程定义:用每个进程是一个结构体,结构体中定义进程名,进程状态,进程id号,进程优先级,进程需运行的时间,进程已运行的时间,指向下一个进程的指针。2)功能:程序中设有内联函数,打印就绪进程函数,打印阻塞进程函数,判断进程是否结束函数,排序进程函数,唤醒进程函数,运行进程函数。2.2.2具体各功能模块设

4、计进程创建(用来存储进程信息):进程号,进程名,进程优先级,需要运行时间。typedef struct pcb char name10; /进程名 char state; /状态 int id; /id号 int super; /优先级 int ntime; /需运行的时间 int rtime; /已运行的时间 struct pcb *next;*pcb1;打印就绪进程队列:void print();打印阻塞进程队列:void print1();判断进程是否结束:int check();对进程进行优先排列:void sort(pcb1 &r,pcb1 p);判断就绪队列是否为空:void bl

5、ock();唤醒进程函数:void wake();运行进程:void runing();输入进程: void input();2.2.3关键代码运行代码:void runing() if(empty(s) pcb1 p;p=s;if(check()s=s-next;p-rtime+;super-;next=NULL;sort(s,p); else coutnext=NULL) sort(w,s);pcb1 p1;p1=s;p1-sort(w,p1);现在就绪队列已经为空,再没有进程需要阻塞!唤醒程序:void wake() if(empty(w) p1=w;w=w-sort(s,p1);阻塞队

6、列已经为空,没有进程再需要唤醒!排列进程程序:r,pcb1 p) pcb1 p1,p2;int in=0;if(r=NULL) r=p;if(p-super=r-super)next=r;p1=r;p2=r-if(p2=NULL) r-next=p;while(in=0&p2!=NULL)=p2-super) next=p2;in=1;p1=p1-p2=p2-if(in=0) 3作品测试结果3.1测试数据测试数据:创建进程 :输入“C”,并输入进程号,进程名,进程优先级,需要运行时间, 创建4个进程,数据如下:1,test1,1,102,test2,2,203,test3,3,304,test

7、4,4,40s(查看就绪状态) w(唤醒进程) z(阻塞进程)l(查看阻塞状态) r(运行进程) s(查看就绪状态) l(查看阻塞状态)q(退出程序)3.2测试结果运行程序,界面显示,并输入进程信息,包括进程号,进程名,进程优先级,需要运行时间:选择功能,查看就绪队列的信息:选择唤醒程序功能:阻塞进程,并查看就绪对列:运行进程:唤醒进程:退出程序:3.3结果分析首先创建进程,并按优先级高低排列到队列中,优先级高的排到队列的队头;通过查看就绪函数查看就绪进程的信息,这时,所有的进程都是属于就绪状态;再通过唤醒函数进行唤醒进程,这时所有进程都属于就绪状态,没有需要唤醒的进程;通过阻塞函数阻塞当前进

8、程,这是阻塞队列中有1个被阻塞的进程,就绪状态就有3个就绪函数;再通过运行进程,这时有2个进程被阻塞,2个进程位于就绪队列;再通过唤醒进程将被阻塞的进程唤醒。4问题与总结4.1设计中所遇到的问题及其解决想借鉴之前我们做过的实验,但是因为自己的电脑没有安装LINUX系统,只有安装了虚拟机,而虚拟机运行的程序又保存不到自己的系统中,所以只好写了一个在Windows中能够运行的模拟进程管理的C+程序。在设计之初,没有想好要用什么来存储进程信息,之后在网上看见一个用C+写的进程管理的程序,它里面用的是结构体来储存,所以就借鉴了他的写法。至于在设计进程运行的等待状态的时候没有想到要用什么来反映进程的等待

9、状态,在翻阅了孙钟秀主编的操作系统教程后,发现可以用队列来表示。4.2尚存在的问题界面不算美观,需加强界面的整理。功能太少,不能充分体现进程的睡眠、同步、撤消等进程控制方法。4.3设计过程的总结与体会在这几天设计这个进程管理的时候,我有这么以下几点体会:1.一开始要先把总体设计搞好,把思路都理清,但不要一开始就固执于细节的实现,否则可能最后发现设计非常混乱,程序难于调试,以至于不得不重头开始设计。2.在做的过程中要及时总结,随时记录开发过程。总之,在编写代码的过程中遇到问题是不可避免的,尤其是使用的像C+这种具有指针的语言,在写出问题代码之前,我们应该谨小慎微,在得到语言的灵活性的同时也降低编

10、译器排查错误的精确度,在出了问题后的解决只有靠自己的经验和技巧了。3.还有,我很庆幸自己能坚持下来,在设计得过程中确实遇到了很多很多的问题,有些真的很难解决,但是不能被面前的困难吓倒,要敢于去坚持,去拼搏,编写程序有时候通宵达旦是很正常的,要勇于付出。4.而且我还发现,很多情况下能否成功完成某项任务并不依赖于会多少,而是要看是否具有快速学习以及触类旁通的能力,很短的时间内学会综合运用多方面的知识来解决问题。5.总之通过本次设计我又巩固了操作系统和C语言中的很多知识,而且发现了自身在编程技巧和思维上的不足,我会加倍努力得学习。5系统说明5.1所需的运行环境Windows XP, Visual C+ 6.05.2参考资料1孙钟秀.操作系统教程.M.北京:高等教育出版社,2008:1103.5.3自我评价难度评价 90分创新程度 90分自我评分 90分

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1