操作系统课程设计进程调度模拟综述_第1页
操作系统课程设计进程调度模拟综述_第2页
操作系统课程设计进程调度模拟综述_第3页
操作系统课程设计进程调度模拟综述_第4页
操作系统课程设计进程调度模拟综述_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机科学与工程学院综合设计报告设计名称:操作系统软件综合设计设计题目:进程调度算法模拟学生学号:专业班级:学生姓名:学生成绩:指导教师(职称):课题工作时间:2013-6-仃至 2013-6-28说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计 完成情况、报告的质量及答辩情况,给出客观、全面的评价。4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一律 按不及格处理。答辩

2、小组成员应由 2 人及以上教师组成。5、报告正文字数一般应不少于 5000 字,也可由指导教师根据本门综合设 计的情况另行规定。6、平时表现成绩低于 6 分的学生,取消答辩资格,其本项综合设计成绩按 不及格处理。7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用 于学院各类综合设计) ,各教研室可根据本门综合设计的特点及内容做 适当的调整,并上报学院批准。成绩评定表学生姓名: 学号: 班级:类别合计 分值各项 分值评分标准实际 得分合计 得分备注平时 表现1010按时参加综合设计,无旷课、迟到、 早退、违反实验室纪律等情况。完成 情况3020按设计任务书的要求完成了全部任 务,

3、能完整演示其设计内容,符合 要求。10能对其设计内容进行详细、完整的 介绍,并能就指导教师提出的问题 进行正确的回答。报告 质量3510报告文字通顺,内容翔实,论述充 分、完整,立论正确,结构严谨合 理;报告字数符合相关要求,工整 规范,整齐划一。5课题背景介绍清楚,综述分析充 分。5设计方案合理、可仃,论证严谨, 逻辑性强,具有说服力。5符号统一;图表完备、符合规范要 求。5能对整个设计过程进行全面的总 结,得出有价值的结论或结果。5参考文献数量在3篇以上,格式付 合要求,在正文中正确引用。答辩 情况2510在规定时间内能就所设计的内容进 行阐述,言简意明,重点突出,论 点正确,条理清晰。1

4、5在规定时间内能准确、完整、流利 地回答教师所提出的问题。总评成绩:分补充说明:指导教师:(签字)日期:_2013年一6_月 28日答辩记录表学生姓名:学号:班级:答辩地点:答辩内容记录:答-1亠 辩 成 绩合计 分值各项 分值评分标准实际 得分合计 得分备注2510在规定时间内能就所设计的内容 进行阐述,言简意明,重点突出, 论点正确,条理清晰。15在规定时间内能准确、完整、流 利地回答教师所提出的问题。答辩小组成员(签字):2013年6月28 日指导教师评语指导教师:(签字)日 期:2013年6月 27 日一、综合设计目的、条件、任务和内容要求:目的设计程序来模拟进程调度的四种调度算法。通

5、过进程调度程序的设计,熟悉和了 解进程控制块、进程队列、调度算法等概念,从而加深和理解处理机管理的核心内容, 加深对操作系统原理课程的理解,巩固已经学过的基础课及专业课知识,开阔学生的 视野,锻炼学生的自学能力及独立动手能力等。条件计算机,Visual C+或者JDK开发平台(MyEclipse)任务1 用语言来实现对n个进程采用不同调度算法的调度进程2. 每个用来标识进程的进程控制块 PCB用结构来描述,包括以下字段:(1) 进程优先数ID,其中0为闲逛进程,用户进程的标识数为 1, 2, 3。(2) 进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优先级大 于0,且

6、随机产生,优先数越大,优先级越高。(3) 进程占用的CPU时间CPUtime,进程每运行一次,累计值等于 4。(4) 进程总共需要运行时间 Alltime,利用随机函数产生。(5) 进程状态,0:就绪态;1:运行态;2:阻塞态。3. 优先数改变的原则(1) 进程在就绪队列中每呆一个时间片,优先数增加1o(2) 进程每运行一个时间片,优先数减 3o4.0内容要求(1) 提示用户选择想要模拟的进程调度算法,并输入待执行的进程的数目n。(2) 由系统自动创建n+1个进程控制块(第一个作为头结点暂且不用),为每 一个进程控制块进行初始化设置,并且链接成一个链表,作为一个就绪队列。(3) 按照用户的要求

7、选择一个进程调度算法来执行。(4) 输出进程调度算法执行后的结果。(5) 提示用户进行下一轮的进程调度算法模拟。指导教师签字:2013 年 6 月 15 日二、进度安排:1. 发题:2013 .6 .152. 17周完成基本设计。3. 18周完成程序调试。4. 18周完成说明书的书写,其中说明书的内容包括:第一章、概述第二章、进程调度设计思想和方法第三章、进程调度程序和结果第四章、结束语第五章、参考文献5. 18 周周四答辩。三、应收集资料及主要参考文献:1. 严蔚敏;吴伟民.数据结构(C语言版)M.北京:清华大学出版社.2007年4月.2. 严蔚敏;吴伟民.数据结构教程学习指导M.北京:清华

8、大学出版社.2005年4月.3. 叶核亚.数据结构(Java版)(第2版)M.北京:电子工业出版社.2008年7月.4. 汤子瀛.计算机操作系统(修订版)M.西安:西安电子科技大学出版社.2001年 8月.5. 谭耀铬.操作系统(2007版)M.北京:中国人民大学出版社.2007年7月.6. 张永常.Java程序设计实用教程M.北京:电子工业出版社.2006年8月.7. 谭浩强.C程序设计(第二版)M.北京:清华大学出版社.1999年12月.四、综合设计(课程设计)摘要(中文):在OS中调度的实质是一种资源分配,因而调度算法是指:根据系统的资 源分配策略所规定的资源分配算法。进程调度常用的算法

9、有:先来先服务调度、 优先级调度、时间片轮转调度和多级反馈队列调度。本次课程设计将就模拟先 来先服务、时间片轮转、短作业优先、优先级和多级反馈队列五种调度算法进 行设计并对他们的性能进行比较,程序提供了创建进程,选择进程调度算法的 基本功能。首先应该设计数据结构,创建进程结构体,然后认真设计每一个进程调度 的算法,并运用程序加以实现,算法设计完毕后调试整体程序并测试,比较在 不同环境下各种进程调度的优劣。目前存在的多种调度算法中,有的短发适用于作业调度,有的算法适用于进 程调度;但也有些调度算法既可用于作业调度,也可用于进程调度。关键词:进程;进程调度;数据结构;算法五、综合设计(课程设计)A

10、bstract (英文):The OS scheduli ng is a kind of resource allocatio n in esse nee , and scheduli ng algorithm is a resource allocati on algorithm based on the system of resource allocati on algorithm prin ciples. Process scheduli ng algorithms com monly used are: a first-come first-served scheduli ng, p

11、riority scheduli ng, ro un d-rob in scheduli ng and multi-lever feedback queue scheduli ng algorithms, and compari ng their performa nee. Program provides the creati on process, choos ing the basic function of process scheduli ng algorithms.First, the data structure should be desig ned to create a s

12、tructure. Then, scheduli ng algorithms should be desig ned carefully for each process, and use the program to achieve those process. Algorithms scheduli ng is completed after the whole program debugg ing, debugg ing is completed after the test ing procedures, and compari ng the differe nt operat ing

13、 en vir onments in the process of scheduli ng in pros and cons.There are many kinds of scheduli ng algorithms. Some is suitable for job scheduli ng, and some is for process scheduli ng. But there are some scheduli ng algorithms which are both suitable for job scheduli ng and process scheduli ng.Keyw

14、ords: Process; Process Scheduling; Data Structure; Algorithm目录摘要IIABSTRACT III第一章课题背景11.1课题背景11.2进程调度简介11.3课题目的31.4课题意义3第二章 设计简介及设计方案论述 42.1步骤简介42.2设计要点42.3具体方案4第三章详细设计73.1设计数据结构73.2模拟进程调度73.3算法流程图73.4主要函数定义12第四章 设计结果及分析134.1创建进程134.2选择进程调度 134.3先来先服务调度134.4时间片轮转调度 144.5优先级调度144.6多级反馈队列调度154.7性能分析15

15、总结17致谢18参考文献19附录20摘要在OS中调度的实质是一种资源分配,因而调度算法是指:根据系统的资源分配 策略所规定的资源分配算法。进程调度常用的算法有:先来先服务调度、优先级调度、 时间片轮转调度和多级反馈队列调度。本次课程设计将就模拟先来先服务、时间片轮 转、短作业优先、优先级和多级反馈队列五种调度算法进行设计并对他们的性能进行 比较,程序提供了创建进程,选择进程调度算法的基本功能。首先应该设计数据结构,创建进程结构体,然后认真设计每一个进程调度的算法, 并运用程序加以实现,算法设计完毕后调试整体程序并测试, 比较在不同环境下各种 进程调度的优劣。目前存在的多种调度算法中,有的短发适

16、用于作业调度,有的算法适用于进程调度; 但也有些调度算法既可用于作业调度,也可用于进程调度。关键词:进程;进程调度;数据结构;算法AbstractThe OS scheduli ng is a kind of resource allocati on in esse nee, and scheduli ng algorithm is a resource allocatio n algorithm based on the system of resource allocati on algorithm principles. Process scheduling algorithms com

17、monly used are: a first-come first-served scheduling, priority scheduling, round-robin scheduling and multi-lever feedback queue scheduling algorithms, and comparing their performanee. Program provides the creation process, choosing the basic function of process scheduling algorithms.First, the data

18、 structure should be desig ned to create a structure. The n, scheduli ng algorithms should be desig ned carefully for each process, and use the program to achieve those process. Algorithms scheduling is completed after the whole program debugging, debugg ing is completed after the testi ng procedure

19、s, and compari ng the differe nt operat ing en vir onments in the process of scheduli ng in pros and cons.There are many kinds of scheduli ng algorithms. Some is suitable for job scheduli ng, and some is for process scheduli ng. But there are some scheduli ng algorithms which are both suitable for j

20、ob scheduli ng and process scheduli ng.Keywords: Process; process scheduling; data structure; algorithm第一章课题背景1.1课题背景在多道程序环境下,主存中有着多个进程,其数目往往多于处理机数目,要使这多 个进程能够并发地执行、这就要求系统能按某种算法,动态的把处理机分配给就绪队列 中的一个进程,使之执行。分配处理机的任务是由处理机调度程序完成的。由于处理机 时最重要的计算机资源,提高处理机的利用率几改善系统(吞吐量、响应时间)在很大 程度上取决于处理机调度性能的好坏,因而,处理机调度便成为操

21、作系统设计的中心问 题之一。1.2进程调度简介进程调度的对象时进程(或内核级线程),它是一种基本的调度,在单批道处理、分 时和实现三种类型的os中,都必须配置这级调度 。1.2.1进程调度的功能(1) 记录系统中所有进程的执行情况作为进程调度的准备,进程管理模块必须将系统中各进程的执行情况和状态特 征记录在各进程的PCB表中。并且,根据各进程的状态特征和资源需求等、进程管 理模块还将各进程的PCB表排成相应的队列并进行动态队列转接。进程调度模块通 过PCB变化来掌握系统中存在的所有进程的执行情况和状态特征,并在适当的时机 从就绪队列中选择出一个进程占据处理机。(2) 选择占有处理机的进程进程调

22、度的主要功能是按照一定的策略选择一个处于就绪状态的进程,使其获 得处理机执行。根据不同的系统设计目的,有各种各样的选择策略,例如系统开销 较少的静态优先数调度法,适合于分时系统的轮转法(Round RoLin)和多级互馈轮转 法(RoundRobin with Multip1e feedback)等。这些选择策略决定了调度算法的性能。(3) 进行进程上下文切换个进程的上下文(context)包括进程的状态、有关变量和数据结构的值、机器 寄存器的值和PCB以及有关程序、数据等。一个进程的执行是在进程的上下文中执 行。当正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换, 以使另一个

23、进程得以执行。当进行上下文切换时点统要首先检查是否允许做上下文 切换(在有些情况下,上下文切换是不允许的,例如系统正在执行某个不允许中断的 原语时)o然后,系统要保留有关被切换进程的足够信息,以便以后切换回该进程时, 顺利恢复该进程的执行。在系统保留了 CPU现场之后,调度程序选择一个新的处于 就绪状态的进程、并装配该进程的上下文,使 CPU勺控制权掌握在被选中进程手中30122引起进程调度的原因(1) 正在执行的进程执行完毕或因发生某事件而不能再继续执行;(2) 执行中的进程因提出I/O请求而暂停执行;(3)在进程通信或同步过程中执行了某种原语操作如P操作、阻塞、挂起原语等;(4)在可剥夺式

24、调度中,有比当前进程优先权更咼的进程进入就绪队列;(5)在时间片轮转法中,时间片完 ;1.2.3进程调度方式进程调度有非抢占方式和抢占方式两种:非抢占方式:一旦将处理机分配给某进程后,不管它要运行多长时间,都要一直让 他运行下去,绝不会因为时钟中断等原因而抢占正在运行的处理机,也不允许其他进程 抢占已经分配给他的处理机。直到该进程完成,自愿释放处理机。抢占方式:这种调度方式允许调度程序根据某种原则去暂停某个正在执行的进程, 将已经分配给该进程的处理机重新分配给另一个进程。但抢占调度方式基于以下原则: 优先权原则、段作业进程优先原则、时间片原则5。1.2.4进程调度的功能进程调度的具体功能可总结

25、为如下几点:(1) 记录系统中所有进程的执行情况(2) 作为进程调度的准备,进程管理模块必须将系统中各进程的执行情况和状态特征记 录在各进程的PCB表中。并且,根据各进程的状态特征和资源需求等、进程管理 模块还将各进程的PCB表排成相应的队列并进行动态队列转接。进程调度模块通 过PCB变化来掌握系统中存在的所有进程的执行情况和状态特征,并在适当的时 机从就绪队列中选择出一个进程占据处理机。(3) 选择占有处理机的进程(4) 进程调度的主要功能是按照一定的策略选择一个处于就绪状态的进程,使其获得处 理机执行。根据不同的系统设计目的,有各种各样的选择策略,例如系统开销较少 的静态优先数调度法,适合

26、于分时系统的轮转法 (Rou nd RoLi n)和多级互馈轮转法 (Round Robin with Multip1e feedback)等。这些选择策略决定了调度算法的性能。(3) 进行进程上下文切换个进程的上下文(context)包括进程的状态、有关变量和数据结构的值、机器寄存器 的值和PCB以及有关程序、数据等。一个进程的执行是在进程的上下文中执行。当 正在执行的进程由于某种原因要让出处理机时,系统要做进程上下文切换,以使另一 个进程得以执行。当进行上下文切换时点统要首先检查是否允许做上下文切换(在有些情况下,上下文切换是不允许的,例如系统正在执行某个不允许中断的原语时)。然后,系统要

27、保留有关被切换进程的足够信息, 以便以后切换回该进程时,顺利恢复 该进程的执行。在系统保留了 CPU现场之后,调度程序选择一个新的处于就绪状态 的进程、并装配该进程的上下文,使 CPU的控制权掌握在被选中进程手中 。1.3课题目的通过课程设计,加深对操作系统各资源管理模块的理解,掌握操作系统的基本原理及 功能,具有初步分析实际操作系统、设计、构造和开发现代操作系统的基本能力。1.4课题意义本次课程设计主要是进一步了解操作系统中的进程调度,能够熟练运用C+编程实现进程调度的基本功能。为之后的学习和实习打下了一定的基础。通过进程调度程序的 设计,熟悉和了解进程控制快、进程队列、调度算法等概念,从而

28、加深和理解处理机管 理的核心内容,加深对操作系统原理课程的理解,巩固已经学过的基础课及专业课知识, 开阔学生的视野,锻炼学生的自学能力及独立动手能力等。第二章设计简介及设计方案论述2.1步骤简介(1) 提示用户选择想要模拟的进程调度算法,并输入待执行的进程的数目no(2) 由系统自动创建n+1个进程控制块(第一个作为头结点暂且不用),为每一个进程 控制块进行初始化设置,并且链接成一个链表,作为一个就绪队列。(3) 按照用户的要求选择一个进程调度算法来执行。(4) 输出进程调度算法执行后的结果。(5) 提示用户进行下一轮的进程调度算法模拟。2.2设计要点1 .用语言来实现对n个进程采用不同调度算

29、法的调度进程2. 每个用来标识进程的进程控制块 PCB用结构来描述,包括以下字段:(1) 进程优先数ID,其中0为闲逛进程,用户进程的标识数为 1, 2, 3-o(2) 进程优先级Priority ,闲逛进程(idle )的优先级为0,用户进程的优先级大于0, 且随机产生,优先数越大,优先级越高。(3) 进程占用的CPU寸间CPUtime进程每运行一次,累计值等于 4。(4) 进程总共需要运行时间 Alltime,利用随机函数产生。(5) 进程状态,0:就绪态;1:运行态;2:阻塞态。3. 优先数改变的原则(1) 进程在就绪队列中每待一个时间片,优先数增加1o(2) 进程每运行一个时间片,优先

30、数减 3o2.3具体方案2.3.1设计数据结构设计一种数据结构Process提供关于进程的一些有效信息:进程名,运行总时间, 剩余时间,优先级。typedef struct QNodestring ProcessName /进程名int Priority : /进程优先级int AllTime;/进程运行需要时间int LeftTime : /完成进程还需的时间)Node, ,kProcess242调度算法及设计原理1.先来先服务调度算法:先按照进入CPU的时间将所有进程一次存入队列(先进入 CPU的存在靠近 队首位置),然后每次将队首位置的进程调入内存,为他分配资源,投入运行, 直到该进程完

31、全运行完毕,再接着调入队首进程,直到队列为空。2 .时间片轮转调度算法:所有就绪进程按先来先服务的原则排成一个队列,将新来的进程加到就绪 对列的末尾,每当执行进程调度时,总是把处理机分配给队首的进程,各进程 占用CPU的时间片相同。也就是说CPU的处理时间划分成一个个相同的时间片, 就绪队列的所有进程轮流运行一个时间片。当一个时间片结束时,如果运行进 程用完它的时间片后还未完成,就强迫运行进程让出CPU,就把它送回到就绪队列的末尾,等待下一次调度。同时,进程调度又去选择就绪队列中的队首进程, 分配给它一时间片,以投入运行。直至所有的进程运行完毕。3 .优先级调度算法:进程调度每次是把CPU分配

32、给就绪队列中优先数最高的进程。可以先将所 有就绪进程按照优先级由大到小的顺序排列,依次存入队列,然后每次优先运 行队首进程,直到队列为空。4 .短作业优先调度算法:先将所有就绪队列按照剩余时间由小到大的顺序排列,并依次存入队列,再按照先来先服务方法执行下去。5 .多级反馈队列调度算法:允许进程在队列之间移动。在系统中设置多个就绪队列,每个队列对应一个优 先级,第一个队列的优先级最高,第二队列次之。以下各队列的优先级逐步降低。 各就绪队列中的进程的运行时间片不同,高优先级队列的时间片小,低优先级队列的时间片大。进程并非总是固定在某一队列中,新进程进入系统后,被存放在第一 个队列的末尾。如果某个进

33、程在规定的时间片内没有完成工作,则把它转入到下一 个队列的末尾,直至进入最后一个队列。系统先运行第一个队列中的进程。 当第一 队列为空时,才运行第二个队列中的进程。依此类推,仅当前面所有的队列都为空 时,才运行最后一个队列中的进程。当处理器正在第i个队列中为某个进程服务时, 又有新进程进入优先级最高的队列(第1- (i-l)中的任何一个对列),则此新进程要抢占正在运行进程的处理器,即由调度程序把正在运行的进程放回第i队列的末尾,把处理器分配给新到的高优先级进程。 除最低优先权队列外的所有其他队列, 均采 用相同的进程调度算法,即按时间片轮转的 FIFO (先进先出)算法。最后一个队 列中的进程

34、按按时间轮转或 FCFS策略进行调度。它是综合了 FIFO、RR和剥夺式 HPF的一种进程调度算法。第三章详细设计3.1设计数据结构定义指针型结构体tProcess代替进程控制块PCB)typedef struct QNodestri ng ProcessName;/进程名int Priority;/进程优先级int AllTime;/进程运行需要时间int LeftTime;/完成进程还需的时间)Node,*Process;String型的进程名,int型的优先级、总时间和剩余时间。3.2模拟进程调度基本功能:(1)创建进程:输入进程的有效信息;(2)进程调度:能够自由选择进程调度方式;(3

35、)输出状态:能够输出每一步所有进程的状态9;3.3算法流程图3.3.1先来先服务调度根据设计的算法画先来先服务进程调度流程图如图3.1所示:图3.1先来先服务流程图332优先级调度根据设计的算法优先级调度进程调度流程图如图3.2所示:图3.2优先级调度流程图333时间片轮转调度根据设计的算法画时间片轮转流程图如图3.3所示:图3.3时间片轮转进程调度流程图334多级反馈队列调度根据设计的算法画多级反馈队列流程图如图3.3所示:3.4主要函数定义void Sort(Process process, i nt size);按优先级从大到小排列void sort1(Process process,

36、i nt size);/按 运行时间从小到大排列void FCFS(Process process, i nt num, i nt Timepice);/先 来先服务算法void TimeTurn(Process process, int num, int Timepice);/时间片轮转算法void PriorityProcess(Process process, int nu m, i nt Timepice);优先级算法void QueueProcess(Process process, int num, int Timepice, Process a1,Process a2,Proce

37、ss a3);多级反馈队列调度第四章设计结果及分析4.1创建进程用户创建进程的界面如图4.1所示:3 12 4 6s 00 5 50呂 5 2 2 2 3 1 w人取人蚤 尿s =虽s =s-s- -+wuTb耳4H -2L -4匸J n Q D D D n V|*- Y-lJ.-#! “lJf*彳子 fn、Tri:7r二 lTTT s 9 s nQ B s -丁丁一丁- 丁丁- T 一二=三二三二一云一-yj T .1 $S名名名茗 :口壬口王口王Q王口王?王 吕昇-号井一井忑E r-AlTAlTlTlTA_TX TlTTr -I 13456 ” H p 科 l1-.Ar IJIr:;!-e

38、:.1t 11 Hl?H5?HFXF臨5? 飢則斯則刖-世别 r-dJh JI t* 匚 Jilt ; L J ,k iT图4.1创建进程4.2选择进程调度用户选择进程调度算法界面如图 4.2所示:S3Hid澤騷哥询间片轮换鼾狀孵度讣短作业啟心驱龈列舷 噁翟訐间片大小汚图4.2选择进程调度算法4.3先来先服务调度先来先服务调度算法运行情况如图4.3,图4.4,图4.5所示:还兼襲占用时间优先级&3201比第程计算已经搠亍完毕!图4.3所有进程都在队列中先来先眾务阔.度:运行氏藉时间S&20252S301&图4.4其中一个执行完毕先来先麗务调度:所有谨程都己经执行売毕!Press 质ny key

39、 to cont inue图4.5所有的进程都执行完毕4.4时间片轮转调度时间片轮转调度算法运行情况如图 4.6,图4.7所示:还需要占甲时间优先级0s353511021B4156I就第运彳亍亘需时间1550202&2530进程输出已经执彳芫毕/ZZ/Z/Z/Z/ZZZZZ/ZZ/ZZ/ZZ/ZZ/J/Z/ZZZ/Z/ZX/r/图4.6其中一个进程执行完毕时间片轮转调度中时间片为汚. I所有进程都已经执苻芫毕?图4.7所有进程都执行完毕4.5优先级调度优先级调度算法运行情况如图4.8,图4.9,图4.10所示:图4.8所有的进程都在队列中囂i4还需要占用时闾 优先级0 6运30级/名 无程转出

40、茸A.M入程”3X梟箱 扌/ 仝/Z 1/ 4XZ 车Z 比“图4.9其中一个进程执行完毕所有进程都己经期厅芫毕t图4.10所有的进程都执行完毕4.6多级反馈队列调度多级反馈队列调度算法运行情况如图4.11至4.13所示:465优先级3图4.11当刖执行第一队列45煜仃字间 时 “ k优先细3程雲进#的仟:中=450錮陆253015一元程运岡 寫 行进 调队 执备 列 未紅 枭/还“中列字 名 计 箭程畀典刖人转出程-1 丄一一/井.tMflt比乍liZ甲遴十 .- - - / 3 - 1-isr- IT-r ll-l ti- i/; r % I曙缆辭的进程,时间片夫小为世程名字善三曲列中的送

41、程+时间片大b为;加运厅址需时间502R25253还需要占用时间优先级1,35116图4.12第二队列执行完,当前执行第三队列勞髒耀贵辭的进程.时间片大小为血 早三V忡所有迸程都己经廿,讦兀毕? 島有进程都已经执行完毕?图4.13所有进程都已经执行完毕4.7性能分析进程调度虽然是在系统内部的低级调度,但进程调度的优劣直接影响作业调度的性 能。反映作业调度优劣的周转时间和平均周转时间只在某种程度上反映了进程调度的性能,例如,其执行时间部分中实际上包含有进程等待 (包括就绪状态时的等待)时间,而 进程等待时间的多少是要依靠进程调度策略和等待事件何时发生等来决定的。因此,进 程调度性能的商量是操作系

42、统设计的一个重要指标。我们说进程调度性能的衡量方法可 分为定形和定量两种。在定形衡量方面,首先是调度的可靠住。包括一次进程调度是否 可能引起数据结构的破坏等。这要求我们对调度时机的选择和保存CPU现场十分谨慎。另外,简洁性也是衡量进程调度的一个重要指标,由于调度程序的执行涉及到多个进程 和必须进行上下文切换,如果调度程序过于繁琐和复杂,将会耗去较大的系统开销。这 在用户进程调用系统调用较多的情况下,将会造成响应时间大幅度增加。进程调度的定 量评价包括CPU勺利用率评价、进程在就绪队列中的等待时间与执行时间之比等。实际 上由于进程进入就绪队列的随机模型很难确定,而且进程上下文切换等也将影响进程的

43、执行效率,LL而对进程调度进行解析是很困难的。 一般情况下,大多利用模拟或测试系 统响应时间的方法来评价进程调度的性能10。分析测试结果知:FCFS算法比较有利于长作业(进程),而不利于短作业(进程); 短作业优先调度算法对长作业不利,可能导致长作业长时间不被调度;优先及调度算法 则保证了紧迫进程,而那些优先级较低的则可能长时间得不到调度;时间片轮转算法则 算是对每个进程都是公平的,减少了进程的等待时间;综合考虑,多级反馈队列调度算 法则是综合FCFS短作业优先,时间片轮转和优先级调度算法的优点,故多级反馈队列 调度对大多数进程调度来说是一种最佳的调度算法,但具体算法则应根据实际需求选 择。总

44、结经过本次课程设计让我感受很深的是对 C+语言的运用,由于对C+语言在平时 运用的不够,在对C+语言的使用尤其是在编写方面很欠缺,在组织语言时出错不断。 在设计过程中,需要大量的相关资料,为了本次课程设计我在网上和图书馆查阅了大量 资料,不断的发现问题、提出问题、解决问题,在变成和调试的过程中,进程会出现意 想不到的问题,并非每个问题都可以从相关资料中找到解决方法,有些问题是无法预料 的,这就需要通过自己理性的分析得出问题的解决方案。我对操作系统中的进程和进程调度有了更进一步的认识和了解,能够熟练掌握常用的进程调度算法。能够正确运用操作系统中所学的基本理论和知识,加深了对进程调度 基本概念的理

45、解,认识到多级反馈队列调度一般来说是最佳的算法,但也有例外,我们 应该根据实际需求确定最佳的进程调度算法。本次课程设计大量运用到了数据结构中的知识, 数据结构中的一些算法我也能灵活 运用在操作系统的设计。回顾本次课程设计,我运用了多个学科的知识,这给了我一些 启发,在今后的学习中我们要多多将各科的知识融会贯通,综合运用。虽然本次课程设计我已经完成了,但我还觉得不足,这也是我知识所限,我要更加 努力。致谢本次课程设计我能够顺利完成要感谢好多人:操作系统的胡宏银老师在课堂上详细 给我们介绍了进程调度的算法,这是完成本次实验的基础。也要感谢数据结构的姚峰老 师,他教授了我大量关于数据结构的知识,对本

46、次课程设计也很重要。感谢老师在这两 周的时间里一直不厌其烦的回答我们同学们的疑惑,为我们讲解疑难之处,找出我们的 错误并教我们改正,最后我还要感谢我的同学朋友们,他们在我遇到问题时耐心的帮我 解决,为我讲解,提出我没有想到的问题,没有这些人,我恐怕不可能完成这一课程设 计,在此表示感谢。参考文献1 汤小丹,梁红兵,等计算机操作系统(第三版)M.西安:西安电子科技大学出版社,2007年2 严蔚敏,吴伟明数据结构(C语言版)M 北京:清华大学出版社,2007年3 陈锐,零基础学数据结构M.北京:机械工业出版社,2010年4 张尧学,计算机操作系统教程(第2版)习题与实验指导M.北京: 清华大学出版

47、社,2009年 严蔚敏;吴伟民数据结构教程学习指导M.北京:清华大学出版社.2005年4月.6 叶核亚.数据结构(第2版)M.北京:电子工业出版社.2008年7月.7 汤子瀛.计算机操作系统(修订版)M.西安:西安电子科技大学出版社.2001年 8月.8 谭耀铬.操作系统(2007版)M.北京:中国人民大学出版社.2007年7月.9 张永常.Java程序设计实用教程M.北京:电子工业出版社.2006年8月.10 谭浩强 C程序设计(第二版)M.北京:清华大学出版社.1999年12月.附录主要程序代码:#i nclude #in elude #defi ne SIZE 100#defi ne O

48、VERFLOW NULLusing n amespace std;typedef struct QNodestri ng ProcessName;/进程名int Priority;/进程优先级int AllTime;/进程运行需要时间int LeftTime;/完成进程还需的时间 Node, *Process;函数声明void Sort(Process processnt size);按优先级从大到小排列void sort1(Process process,i nt size);按运行时间时间从小到大排列void FCFS(Process process, i nt num, i nt Tim

49、epice);/先 来先服务算法void TimeTurn(Process process, int nu m, i nt Timepice);/时间片轮转算法void PriorityProcess(Process process, int nu m, i nt Timepice); / 优先级算法void QueueProcess(Process process, int num, int Timepice, Process a1, Process a2,Process a3);多级反馈队列/主函数void main()int a;Process *process=new Process

50、SIZE;Process *a1= new Process SIZE;/用数组模拟队列的功能Process *a2= new Process SIZE;Process *a3= new Process SIZE;for(int i=0;iSIZE;i+) 指针数组初始化processi =new QNode; a1i=new QNode;a2i=new QNode;a3i=new QNode;for (i nt i1=0;inum;for (int j=0;j nu m;j+)stri ng n ame;int CpuTime;int Leval;coutvv输入第j+1n ame;cin CpuTimeLeval; processj-ProcessName=n ame; processj-AIITime=CpuTime; processj-Priority=LevaI;for (i nt k=0;k LeftTime=processk-AIITime; 对进程剩余时间初始化 coutvve ndl;cout1:先来先服务2:时间片轮换3:优先级调度4:最短作业优先5:多级反 馈队列调度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论