进程调度缘由及调度切换时机,进程调度方式与实现及各类调度算法的我的总结:算法
1.通常调度概念 1)什么是调度 就是选出待分派的做业或进程。 操做系统管理了系统的有限资源,当有多个进程(或做业)发出请求要使用这些资源时,由于资源的有限性,必须按照必定的原则选择进程(或做业)来占用资源。这就是调度。并发
2)调度目的 1.控制资源使用者的数量 2.选取资源使用者 3.许可哪些使用者占用资源 4.让使用者直接占用资源。性能
2、调度类型 一、高级调度(长程调度)。 即做业调度,选取输入井中的做业,生成根进程。目的是控制使用系统资源的进程数。优化
二、中级调度(中程调度)。 指选取进程占用内存或有资格占用内存,又称进程滚入滚出,中级调度将在存储管理章节中介绍,有页式调度、段式调度、段页式调度等。操作系统
三、低级调度(短程调度) 指选取进程占用处理机,又称进程调度。 四、I/O调度 选取进程占用I/O设备。blog
3、调度和状态转换 在许多系统中,调度被分为三种:长程、中程和短程。 1)调度和进程状态转换队列
从状态转换的观点: 一、长程调度(做业调度)就是将一个或一批做业从后备状态变为运行状态。一个做业一旦被高级调度选中,即可得到所须要的基本内存和设备资源,并被装入内存,此后就以进程形式参与并发执行,与其它进程竞争CPU。进程
从状态转换的观点: 二、中程调度就是将进程从活动态变为静止的挂起态,或者将进程从挂起态变为就绪或阻塞态。 三、短程调度就是将某个进程从就绪态变为(在CPU上运行的)执行态。事件
2)调度的层次(调度做用的嵌套关系)内存
3)三级调度示意图 调度从根本上讲,是要使队列延迟的时间最小,并优化系统的执行效率
4.1.2做业调度的功能
①记录系统中各个做业的状况。 ②按照某种调度算法从后备做业队列中挑选做业,即决定接纳多少个做业进入内存和挑选哪些做业进入内存。
③为选中的做业分配内存和外设等资源。 ④为选中的做业创建相应的进程,并把该进程放入就绪队列中。 ⑤做业结束后进行善后处理工做。如输出必要的信息,收回该做业所占用的所有资源,撤消与该做业相关的所有进程和该做业的JCB 。
4.1.3进程调度的功能与调度时机 1、进程调度的功能 (1)保存现场(2)挑选进程(3)恢复现场
2、进程调度的时机 通常在下列事件发生后要执行进程调度。 (1)建立进程。 当进程建立时,要决定是运行父进程仍是子进程。 (2)进程终止。 (3)等待事件。 (4)中断发生。 (5)运行到时。
4.1.4进程调度的基本方式 1)非剥夺调度(非抢占) 只有当处理机上的进程主动放弃处理机时,才从新调度。 2)剥夺调度(抢占) 当进程运行时能够被系统以某种原则为由剥夺其处理机。
例:只有一部电话机,小李正在通电话,此时小张有急事也要打电话,此时小张的调度方式有两种: 一种是非抢占,即等待小李打完电话,本身再打电话。 另外一种是抢占,不等小李通完电话,抢过话筒就拨打电话。
3)进程调度在核心态进行。 ★CPU状态有两种,目态和管态。 管态——也称核心态或系统态,系统程序在CPU上运行的状态。 目态——用户程序在CPU上运行的状态。
4.2 调度算法 4.2.1 经常使用的调度算法
1. FCFS 谁先到就绪队列就将处理机分给谁。 2. 短做业优先 取一个下次所需运行时间最短的做业(该算法能使平均等待时间最短)。
3. 优先级调度 选优先级最高的进程占用处理机(优先级可动态改变)。 4.轮转调度法 以先来后到的次序+ 时间片轮转。
5.多队列调度法 按属性将就绪进程分类,不一样类进程可有不一样的调度算法。 6.多级反馈队列调度法 设置多条就绪队列,进程被调度执行后,在被剥夺或放弃处理机后而在就绪时,能够改变其就绪队列(见下图)。
又一个多级反馈队列调度算法的例子:使用优先权实现调度。作法以下:
(1)以优先级设置多队列。 (2)各队列的调度算法采用FCFS+时间片轮转. (3)进程优先级升降原则是:等待太久升,输入/输出完成时升,运行完一个完整时间片降……
(4)进程最初进入就绪队列以用户初置优先级为参数。 (5)开始调度时,先从最高优先权的就绪队列(RQ0)开始选取一个进程,若是RQ0空,则检查RQ1,如此下去。见下图示:
4.2.2 调度策略的讨论
1、调度性能评价准则 一、CPU利用率。 二、吞吐率。即每单位时间所完成的做业数目。 三、周转时间。即从做业提交直至完成这一做业的时间间隔。
四、等待时间。即做业在就绪队列中等待所花的时间。 五、响应时间。即从做业提交到首次产生回答信息之间的时间。
2、主要的调度算法 下面以表所示的进程集做为范例讨论不一样的调度策略。 到达时间:进程或做业提交时间。 服务时间:进程要求服务的时间,或完成做业所需的时间。
1、FCFS调度策略(或先进先出)
FCFS策略更适合于长进程。例:
注:周转时间=完成时间—到达时间 tq/ts :带权周转时间=周转时间/服务时间
(1)进程C的等待标准化时间是不能容忍的。它位于系统的总时间是它所需服务时间的100倍。不管什么时候,一个长进程到后,一个短进程就会出现较长的等待。 (2)进程D的标准化等待时间尚可容忍,小于2.0。进程D的轮转时间差很少是C的两倍。
总结: FCFS(First Come First Served)即先来先服务,故它的本质是非抢占的。它简单易行,但调度性能较差,有可能使短的、重要的或紧迫的做业等进程长期等待,其实现过程容易,可采用FIFO队列管理。