1、Applied Operating System Concepts,Module 6: CPU Scheduling,Basic Concepts (基本概念) Scheduling Criteria (调度准则) Scheduling Algorithms (调度算法) Multiple-Processor Scheduling (多处理器调度) Real-Time Scheduling (实时调度) Algorithm Evaluation (算法评估),Applied Operating System Concepts,Basic Concepts,Maximum CPU utiliza
2、tion obtained with multiprogramming(通过多道程序设计得到CPU的最高利用率) 通过多道程序提高CPU的利用率: 在单道情况下,CPU利用率非常低,于是引入多道程序设计,从而,需要OS提供CPU调度.所以CPU调度是OS的一个最基本的功能.,Applied Operating System Concepts,Basic Concepts,CPUI/O Burst Cycle Process execution consists of a cycle of CPU execution and I/O wait.(CPU-I/O脉冲周期 - 进程的执行包括进程在C
3、PU上执行和等待I/O) 进程的执行以CPU脉冲开始,其后跟着I/O脉冲.进程的执行就是在这两个状态之间进行转换. CPU burst distribution (CPU脉冲的分布) 在系统中,存在许多短CPU脉冲,只有少量的长CPU脉冲. 比如:I/O型作业具有许多短CPU脉冲,而CPU型作业则会有几个长CPU脉冲,这个分布规律对CPU调度算法的选择是非常重要的.,Applied Operating System Concepts,Alternating Sequence of CPU And I/O Bursts,Applied Operating System Concepts,Hist
4、ogram of CPU-burst Times,Applied Operating System Concepts,CPU Scheduler,Selects from among the processes in memory that are ready to execute, and allocates the CPU to one of them.(选择内存中的某个就绪进程,并分配CPU给其) CPU scheduling decisions may take place under the following circumstances: (CPU调度可能发生在以下情况下): 1.
5、 Switches from running to waiting state(从运行转到等待). 2. Switches from running to ready state(从运行转到就绪). 3. Switches from waiting to ready(从等待转到就绪). 4. Terminates(终止运行). Scheduling under 1 and 4 is nonpreemptive (发生在1、4两种情况下的调度称为非抢占式调度). All other scheduling is preemptive (其他情况下发生的调度称为抢占式调度).,Applied Ope
6、rating System Concepts,进程调度的方式,非抢占方式采用这种调度方式时,一旦把处理机分配给某进程后,便让进程一直执行,直到该进程完成或发生某事件而被阻塞时,才把处理机分配给其它进程,决不允许某进程抢占已经分配出去的处理机。 优点: 实现简单、系统开销小,适用于大多数批处理系统环境。 缺点: 难以满足紧急任务的要求,不适用于实时、分时系统要求,Applied Operating System Concepts,进程调度,抢占方式(Preemptive mode)这种调度方式,允许进程调度程序根据某个原则,去停止某个正在执行的进程,将已分配给进程的处理机,重新分配给另一个进程。
7、抢占的原则有: 时间片原则:各进程按时间片运行,当一个时间片用完后,便仃止该进程的执行而重新进行调度。这个原则适用于分时系统。 优先权原则:通常是对一些重要的和紧急的进程赋予较高的优先权。当这种进程进入就绪队列时,例如由阻塞态转换为就绪态,或从静止就绪态转为活动就绪态时,或新创建进入就绪态的进程进入就绪队列时,如果其优先权比正在执行的进程优先权高,便仃止正在执行的进程,将处理机分配给优先权高的进程,使之执行。,Applied Operating System Concepts,进程调度,短作业优先原则:当新到达的作业比正在执行的作业明显短时,将暂停当前长作业的执行,将处理机分配给新到的短作业,
8、使之执行。缺点:额外开销,Applied Operating System Concepts,处理机三级调度,1.高级(Long-term)调度作业调度作业调度用于决定把外存输入井上处于作业后备队列上的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。在批处理系统中,作业是先驻留在外存的输入井上的,因此需要有作业调度。然而在分时系统中,通过键盘输入的命令和数据直接进入内存,无需作业调度。 2.低级(Short-term)调度进程调度进程调度决定就绪队列中哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。进程调度是最基本的调度,任
9、何操作系统都有进程调度。,Applied Operating System Concepts,低级(Short-term)调度进程调度,低级调度是由每秒可执行许多次的处理机调度程序执行,处理机调度程序应常驻内存。 进程调度的方式:非抢占方式,抢占方式。抢占的方式有:1 时间片原则;2 优先级原则; 3 短进程优先原则,Applied Operating System Concepts,中级(Medium-term)调度对换,引入中级调度的目的是为了提高主存利用率和系统吞吐量。由于在进程并发执行过程中,为了充分发挥内存的效能,需将那些暂时不能运行的进程从内存调到外存盘交换区去等待,而将那些在盘交
10、换区的等待事件已经发生急需调度运行的进程从盘交换区调入内存。,Applied Operating System Concepts,处理机三级调度图,作业运行状态,外存(盘)交换区,作业收容状态,作业提交状态,作业完成状态,终止作业,静止就绪态,静止阻塞态,外存,中级调度,作业调度,Applied Operating System Concepts,高级调度-作业调度,1.作业的状态作业从进入到运行结束,一般需要经历“提交”、“后备”、“运行”和“完成”四个阶段。 提交状态一个作业被提交给机房后正在通过SPOOLing系统进行输入或用户通过终端向计算机中键入其作业时所处于的状态为提交状态。此时作
11、业信息尚未全部进入系统。,Applied Operating System Concepts,高级调度-作业调度,后备状态作业已经过SPOOLing系统输入到磁盘输入井,等待调入内存运行,此时作业处于后备状态。为了管理和调度作业,为每个作业设置一个作业控制块(JCB)。作业控制块记录了作业类型和资源要求等有关信息。作业控制块按作业类型组成一个或多个后备作业队列。,Applied Operating System Concepts,高级调度-作业调度,运行状态一个在后备作业队列的作业被作业调度程序选中后,分配必要的资源,建立一组相应的进程后,调入内存,该作业就进入运行状态。进程各状态(进程运行态
12、、活动就绪态、活动阻塞态、静止就绪态、静止阻塞态等)都对应作业运行状态。 完成状态当进程正常运行结束或因发生错误而终止时,作业进入完成状态。终止作业程序将负责善后处理:输出结果、回收资源等。,Applied Operating System Concepts,高级调度-作业调度,2.作业状态的转换 作业调度作业调度程序按一定算法从后备作业队列中选一个满足资源要求的作业,分配它所要求的资源,建立一组相应的进程,设置该进程状态为就绪态,并将该进程插入内存就绪队列,参加CPU争夺。,Applied Operating System Concepts,高级调度-作业调度,终止作业当进程正常运行结束或因
13、发生错误终止时,调用终止作业程序,它负责将输出文件缓冲输出到输出井,并调用SPOOLing系统输出进程将作业输出文件在打印机输出。同时回收作业所使用内、外存、I/O设备等各种资源,最后调用记帐程序结清作业费用。,Applied Operating System Concepts,作业状态及其转换图,spooling 系统,提交,收容,外存(输入井),就绪,等待,运行,就绪,等待,交换调度,完 成,作业调度,进程调度,Applied Operating System Concepts,后备作业队列空,按调度算法从作 业中选出一作业,调用存储、设备管理 程序,审核资源要求,资源要求能满足?,放弃该
14、 作业,否,分配资源,调用进程管理 程序建立进程,进程调度,否,是,出 口,作业从后备状态到执行状态,Applied Operating System Concepts,撤销该作业的所有进程及作业的JCB,调用存储管理,设备管理回收 分配给该作业的全部资源,调用会计程序,计算该作业的执行费用,调度下一个作业,作业从执行状态到完成状态,Applied Operating System Concepts,作业与进程的关系,作业是用户向计算机提交任务的任务实体。进程是计算机为了完成用户任务实体而设置的执行实体。显然,计算机要完成一个任务实体,必须要有一个以上的执行实体,一个作业总是由一个以上的多个进
15、程组成。,Applied Operating System Concepts,作业调度的功能:按某种算法从后备队列中挑选一个或一批作业调入内存,并创建PCB. 1后备作业队列与作业控制块 系统中有若干作业在输入井中,为了管理和调度作业,就必须记录已进入系统的各作业的情况,系统为每个作业设置了一个作业控制块(JCB)。 JCB内容:作业名、作业状态、作业调度,以及资源申请和一些控制信息。,作业的调度,Applied Operating System Concepts,作业控制块JCB,Applied Operating System Concepts,按照某种调度算法从后备作业队列中选取作业。
16、为被选取的作业分配内存和外设资源(当系统为动态分配外设时,作业所申请的外设只作为调度的参考因素)。因此要用到内存分配程序和外设分配程序。 为选中的作业建立相应的进程。 为作业开始运行做好一切准备工作。如构造和读写作业运行时所需要的有关表格及建立负责其运行控制的作业运行控制程序。 在作业运行完毕或运行过程中因某种原因需要撤离时,作业调度程序还要完成作业的善后处理工作,如收回分配给他的全部资源,作业调度应完成如下几方面的工作,Applied Operating System Concepts,调度目标对所有作业应该公平合理应使设备有高的利用率每天执行尽可能多的作业有快的响应时间,作业调度目标与性能
17、衡量,Applied Operating System Concepts,处理机调度模型 仅有进程调度的调度队列模型,Applied Operating System Concepts,处理机调度模型,2.具有进程调度和中级调度队列模型在具有虚拟存储器技术的分时系统中(例如UNIX系统等),一般采用具有进程调度和中级调度的调度模型。在该模型中比第一种模型增加了中级调度,则相对于上一模型也增加了静止就绪队列和静止阻塞队列。中级调度时或从活动就绪队列调到静止就绪队列,或从活动阻塞队列调到静止阻塞队列,或从静止就绪队列调到活动就绪队列。,Applied Operating System Concep
18、ts,处理机调度模型,3.具有高级调度和低级调度的调度队列模型在多道批处理系统中,一般处理机管理设置作业和进程两级调度。它比第一个模型增加了高级调度。模型增加了在磁盘的作业后备队列,作业调度的任务是从作业后备队列中选一个作业为它创建至少一个进程,并分配资源,将它排入内存进程就绪队列末尾。,Applied Operating System Concepts,处理机调度模型 具有高、低两级调度的调度队列模型,完成,Applied Operating System Concepts,处理机调度模型,4.同时具有三级调度的调度队列模型在通用系统的多模式OS中,一般采用具有三级调度的调度队列模型,由于多
19、模式OS同时支持批处理、分时和实时处理,所以它必须具有以上模型,具有三级调度的调度队列模型是第二、三两模型的综合,见下图所示。,Applied Operating System Concepts,处理机调度模型 具有三级调度的调度队列模型,Applied Operating System Concepts,进程调度的功能,选择占有处理机进程:进程调度的主要功能是按照一定的策略(由它决定的调度算法),选择一个处于就绪态的进程,使其获得处理机执行。 进行进程上下文切换:进程上下文实际上是进程执行活动全过程的静态描述,一个进程的执行是在进程上下文中执行。当正在执行的进程由于某种原因要让出处理机时,系
20、统要做上下文切换,以使另一个进程得以执行。 记录系统中所有进程的执行情况:进程管理模块在各进程的PCB表中记录系统各进程的执行情况和状态特征,并将各PCB表根据进程状态特征和资源要求排成相应的队列,并进行动态队列转换。,Applied Operating System Concepts,Dispatcher,Dispatcher module gives control of the CPU to the process selected by the short-term scheduler; this involves(分派程序负责将CPU的控制权转交给短程调度选择的进程,包括): swi
21、tching context(切换上下文) switching to user mode(切换到用户态) jumping to the proper location in the user program to restart that program(跳转到用户程序的适当位置并重新运行之) Dispatch latency time it takes for the dispatcher to stop one process and start another running(分派延迟 分派程序终止一个进程的运行并启动另一个进程运行所花的时间).,Applied Operating Sy
22、stem Concepts,Scheduling Criteria(调度准则),CPU utilization keep the CPU as busy as possible (CPU利用率 使CPU尽可能的忙碌) Throughput the number of processes that complete their execution per time unit(吞吐量 单位时间内运行完的进程数) Turnaround time the interval from submission to completion (周转时间 进程从提交到运行结束的全部时间 ) Waiting tim
23、e amount of time a process has been waiting in the ready queue(等待时间 进程在就绪队列中等待调度的时间总和 ) Response time amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment)(响应时间 从进程提出请求到首次被响应的时间段在分时系统环境下不是输出完结果的时间 ) 调度算法影响的是等待时间,而不能影
24、响进程真正使用CPU的时间和I/O时间,Applied Operating System Concepts,Optimization Criteria,Max CPU utilization (最大的CPU利用率) Max throughput (最大的吞吐量) Min turnaround time (最短的周转时间) Min waiting time (最短的等待时间) Min response time (最短的响应时间),Applied Operating System Concepts,作业进程调度算法,1.先来先服务First-Come-First-Served:FCFS是一种最简
25、单的调度算法,可用于作业或进程调度。此算法的原则是按照作业到达后备作业队列(或进程进入就绪队列)的先后次序来选择作业(或进程)。FCFS算法属于非抢占方式,一旦一个进程占有处理机,它就一直运行下去,直到该进程完成或者因等待某事件而不能继续运行时才释放处理机。FCFS算法易于实现,表面上很公平,实际上有利于长作业,不利于短作业;有利于CPU繁忙型,不利于I/O繁忙型。,Applied Operating System Concepts,First-Come, First-Served (FCFS) Scheduling,Example: Process Burst Time P1 24P2 3P
26、3 3 Suppose that the processes arrive in the order(假定进程到达顺序如下): P1 , P2 , P3 The Gantt Chart for the schedule is(该调度的Gantt图为): Waiting time(等待时间) for P1 = 0; P2 = 24; P3 = 27 Average waiting time(平均等待时间): (0 + 24 + 27)/3 = 17,Applied Operating System Concepts,FCFS Scheduling (Cont.),Suppose that the
27、 processes arrive in the order (假定进程到达顺序如下) P2 , P3 , P1 . The Gantt chart for the schedule is (该调度的Gantt图为) : Waiting time (等待时间) for P1 = 6; P2 = 0; P3 = 3 Average waiting time (平均等待时间) : (6 + 0 + 3)/3 = 3 Much better than previous case(比前例好得多). Convoy effect short process behind long process (此种结
28、果产生是由于长进程先于短进程到达),P1,P3,P2,6,3,30,0,Applied Operating System Concepts,作业进程调度算法,2.短作业优先(SJF)调度算法这种调度算法主要用于作业调度,它从作业后备队列中挑选所需运行时间(估计值)最短的作业进入主存运行。这一算法有利于短作业,对长作业不利。采用SJF有利于系统减少平均周转时间和平均带权周转时间,提高系统吞吐量。在一般情况下SJF调度算法比FCFS调度算法的效率要高一些。实现相对FCFS调度算法要困难些。如果作业的到来顺序及运行时间不合适,会出现饿死现象,例如,系统中有一个运行时间很长的作业JN,和几个运行时间小
29、的作业,然后,不断地有运行时间小于JN的作业的到来,这样,作业JN就得不可调度而饿死。另外,作业运行的估计时间也有问题。Although the SJF algorithm is optimal,it cannot be implemented at the level of short_term CPU scheduling.,Applied Operating System Concepts,Shortest-Job-First (SJF) Scheduling,Associate with each process the length of its next CPU burst. Us
30、e these lengths to schedule the process with the shortest time.(根据每个作业下次要运行的CPU脉冲长度,调度最短的作业) Two schemes: nonpreemptive once CPU given to the process it cannot be preempted until completes its CPU burst(非抢占式调度 一旦进程拥有CPU,它的使用权限只能在该CPU 脉冲结束后让出). Preemptive if a new process arrives with CPU burst lengt
31、h less than remaining time of currently executing process, preempt. This scheme is know as the Shortest-Remaining-Time-First (SRTF).(抢占式调度 发生在有比当前进程剩余时间更短的进程到达时,也称为最短剩余时间优先调度) SJF is optimal gives minimum average waiting time for a given set of processes.(SJF是最优的 对一组指定的进程而言,它给出了最短的平均等待时间),Applied Op
32、erating System Concepts,Determining Length of Next CPU Burst,Can only estimate the length(其长度只能估计). Can be done by using the length of previous CPU bursts, using exponential averaging(可以通过先前的CPU脉冲长度及计算指 数均值进行).,Applied Operating System Concepts,Examples of Exponential Averaging, =0 n+1 = n Recent hi
33、story does not count. =1n+1 = tn Only the actual last CPU burst counts. If we expand the formula, we get: n+1 = tn+(1 - ) tn -1 + +(1 - )j tn -1 + +(1 - )n=1 tn 0 Since both and (1 - ) are less than or equal to 1, each successive term has less weight than its predecessor.,Applied Operating System Co
34、ncepts,Process Arrival Time Burst TimeP1 0.0 7P2 2.0 4P3 4.0 1P4 5.0 4 SJF (non-preemptive)Average waiting time = (0 + 6 + 3 + 7)/4 - 4,Example of Non-Preemptive SJF,P1,P3,P2,7,3,16,0,P4,8,12,Applied Operating System Concepts,Example of Preemptive SJF,Process Arrival Time Burst TimeP1 0.0 7P2 2.0 4P
35、3 4.0 1P4 5.0 4 SJF (preemptive)Average waiting time = (9 + 1 + 0 +2)/4 - 3,P1,P3,P2,4,2,11,0,P4,5,7,P2,P1,16,Applied Operating System Concepts,先来先服务调度算法和短作业优先调度算法,11,Applied Operating System Concepts,作业进程调度算法,优先权(Priority)调度算法:按照进程的优先权大小来调度,使高优先权进程得到优先处理的调度策略称为优先权调度算法。进程的优先权的设置可以是静态的,也可以是动态的。,Appli
36、ed Operating System Concepts,作业进程调度算法,静态优先权在进程创建时确定,且在整个生命期中保持不变。确定进程优先权的依据有: 进程类型,通常系统进程的优先权高于一般用户态进 程的优先权;进程对资源的需求,如进程执行时间及内存需要少的进程应赋予较高的优先权;根据用户要求,由用户的紧迫程度及用户所付费用的多少来确定进程的优先权。 动态优先权是指在创建进程时所赋予的优先权,可以随进程的推进而改变,以便获得更好的调度性能。改变优先权的因素,随系统不同而不同,最常考虑的因素有进程的等待时间,已使用处理机的时间,或者资源使用情况等。,Applied Operating Sys
37、tem Concepts,Priority Scheduling,A priority number (integer) is associated with each process(每个进程都有自己的优先数整数) The CPU is allocated to the process with the highest priority (smallest integer highest priority)(CPU分配给最高优先级的进程假定最小的整数 最高的优先级). Preemptive(抢占式) Nonpreemptive (非抢占式) SJF is a priority schedul
38、ing where priority is the predicted next CPU burst time(SJF是以下一次CPU脉冲长度为优先数的优先级调度). Problem Starvation low priority processes may never execute (问题 饥饿 低优先级的可能永远得不到运行). Solution Aging as time progresses increase the priority of the process (解决方法 老化 视进程等待时间的延长提高其优先级).,Applied Operating System Concepts
39、,Priority Scheduling,在最坏情况下,高优先权的进程可能导致一个低优先权的进程永远得不到CPU。一般而言,会发生下述两种情况之一:或者那个低优先权的进程最终得到运行,或者某一时刻系统崩溃从而使所有低优先权的进程得不到运行。 一个很有意思的例子:当MIT的IBM7094机器于1973年关掉时,人们发现一个于1967年提交的一个低优先权的进程还没有得到运行。,Applied Operating System Concepts,系统中有两类进程,系统进程和用户进程。系统进程的优先级比用户进程的优先级高,特别是某些系统进程,必须赋予它一种特权,当它需要处理机时,应尽快得到满足。例如,
40、设备管理中的I/O进程便是如此。这不仅是为了保证I/O设备尽可能忙碌,以提高设备利用率,更主要的是为了避免由于响应不及时,将造成信息的丢失。在用户进程中,I/O繁忙的进程应优先于CPU繁忙的进程,以保证CPU和I/O设备之间的并行操作。在分时系统中,前台进程应优先于后台进程。,Applied Operating System Concepts,作业进程调度算法,时间片轮转Round-Robin(RR)调度算法用于进程调度,是分时系统采用的主要调度算法。进程调度程序总是选择就绪队列中第一个进程,允许其占有处理机一个时间片的时间。当执行的时间片用完时,调度程序便仃止该进程的执行,并将它送就绪队列的
41、末尾,等待分配下一时间片再执行。然后把处理机分配给就绪队列中新的队首进程, 在RR算法中,时间片的大小对系统性能有很大的影响。当时间片非常大时? FCFS当时间片很小时? Processor sharing,即对于系统中的N个进程来说,每个进程都有自己的单独的CPU,只不过速度为真正CPU的1/N,Applied Operating System Concepts,Round Robin (RR),Each process gets a small unit of CPU time (time quantum), usually 10-100 milliseconds. After this
42、time has elapsed, the process is preempted and added to the end of the ready queue (每个进程将得到小单位的CPU时间时间片,通常为10-100毫 秒。时间片用完后,该进程将被抢占并插入就绪队列末尾). If there are n processes in the ready queue and the time quantum is q, then each process gets 1/n of the CPU time in chunks of at most q time units at once.
43、No process waits more than (n-1)q time units(假定就绪队列中有n个进程、时间量为q, 则每个进程每次得到1/n的、不超过q单位的成块CPU时间,没有任何一个进程的等待时间会超过(n-1) q单位). Performance(特性) q large FCFS q small q must be large with respect to context switch, otherwise overhead is too high(q相对于切换上下文的时间而言足够长,否则将导致系统开销过大).,Applied Operating System Conce
44、pts,F,C,B,A,.,CPU,完成,A,BC,时间片轮转算法,当时间片很大时,每个进程得到比完成该进程多的处理机时间,此时轮转调度模式退化为FCFS模式。 当时间片非常小时,上下文转换开销就成了决定因素,系统性能降低,大多数时间都消耗在处理机的转换上,只有少许用在用户的计算上。,Applied Operating System Concepts,这个最佳的时间片值是多少呢?显然,它将随系统而异。随负载而异,同时也随进程而异。时间片的选取是实现调度算法的关键,而时间片的额定通常应考虑终端数目、处理机能力、各终端任务的急迫程度、外存传输速度等方面的因素。时间片轮转法亦可应用于批处理系统的处理
45、机调度。,Applied Operating System Concepts,Example: RR with Time Quantum = 20,Process Burst TimeP1 53P2 17P3 68P4 24 The Gantt chart is: Typically, higher average turnaround than SJF, but better response(典型的说,RR的平均周转时间比SJF长,但响应时间要短一些).,0,20,37,57,77,97,117,121,134,154,162,Applied Operating System Concep
46、ts,How a Smaller Time Quantum Increases Context Switches,Applied Operating System Concepts,Turnaround Time Varies With The Time Quantum,一组进程的平均周转时间并不一定随着时间片的增大而降低。一般来说,如果大多数(80%)进程能在一个时间片内完成,就会改善平均周转时间,Applied Operating System Concepts,Multilevel Queue,Ready queue is partitioned into separate queues
47、(就绪队列分为): foreground (interactive)(前台)交互式 background (batch) (后台) 批处理 每一个进程固定地处于某一个队列,通常会按进程的属性来分类,如进程的类型、优先权、占用内存的多少 Each queue has its own scheduling algorithm(每个队列有自己的调度算法) foreground RR background FCFS Scheduling must be done between the queues(调度须在队列间进行). 一种方案:不同队列间的调度为基于固定优先权的抢占式调度 Fixed prior
48、ity scheduling; i.e., serve all from foreground then from background. Possibility of starvation(固定优先级调度,即前台运行完后再运行后台。有可能产生饥饿). 另一种方案:队列间采用时间片调度,e.g.,80% to foreground in RR20% to background in FCFS (给定时间片调度,即每个队列得到一定的CPU时间,进程在给定时间内执行;如,80%的时间执行前台的RR调度,20%的时间执行后台的FCFS调度),Applied Operating System Conc
49、epts,Multilevel Queue Scheduling,Applied Operating System Concepts,作业进程调度算法,6多级反馈(Feedback)队列调度算法基于时间片轮转法 前面介绍的各种用作进程调度的算法,都有一定的局限性,如SJF算法仅照顾了短进程而怠慢了长进程。况且对进程运行的长短,往往难以正确估计,所以短进程优先的调度算法无法正确使用。而多级反馈队列调度算法,则不必事先知道各种进程所需的执行时间,仍能基本满足短进程优先和I/O频繁的进程优先的需要,因而是目前公认的较好的一种进程调度算法。各个就绪队列中进程执行时间片的大小也各不相同,在优先级越高的队列中,每个进程的执行时间片就规定得越小。 当一个线程执行完一个完整的时间片后被抢占处理器,而被抢占的线程优先级降低一级而进入下级就绪队列,如此继续,直至降到线程的基本优先级。而一个线程从阻塞态变为就绪态时要提高优先级,好处: 终端型作业 短批处理作业 长批处理作业,