【操作系统】第四章处理机调度
第四章 处理机调度
第四章小结
处理机管理的工作是对CPU资源进行合理的分配使用,以提高处理机利用率,并使各用户公平地得到处理机资源。
要解决的问题
WHAT:按什么原则分配CPU —进程调度算法
WHEN:何时分配CPU —进程调度的时机
HOW: 如何分配CPU —CPU调度过程(进程的上下文切换)
4.1 分级调度
4.1.1 作业的状态及其转换
4.1.2 调度的层次
第1级:作业调度、宏观调度、高级调度
对外存输入井上的大量作业进行选择,对选择的作业分配资源,建立相应进程
作业执行完毕时,回收资源。
第2级:交换调度、中级调度
将处于外存交换区中的就绪状态或等待状态的进程调入内存,
或把处于内存就绪状态或内存等待状态的进程交换到外存交换区
第3级:进程调度、微观调度、低级调度
选取一个处于就绪状态的进程占用处理机,之后,进行上下文切换以便建立与占用处理机进程相适应的执行环境。
第4级:线程调度
选取一个处于就绪状态的线程进入执行状态。
多道批处理系统存在作业调度和进程调度
分时系统和实时系统一般只有进程调度、交换调度和线程调度
4.1.3 调度时间周期
4.1.5 作业与进程的关系
4.2 作业调度
4.2.1 作业调度的功能
记录系统中各作业的状况
从后备队列中选择一部分作业投入运行(涉及调度算法)
为被选中的作业做好执行前的准备(建立进程、为进程们分配系统资源)
作业执行结束时的后处理
记录系统中各作业的状况
系统为每个作业建立一个JCB记录作业信息,系统通过JCB感知作业的存在。
作业进入后备状态时,系统为其建立JCB;作业进入完成状态后,系统撤销其JCB。
4.2.2 作业调度中状态的转换
4.2.3 作业调度目标与性能衡量
目标
公平性:对所有作业应该是公平的
利用率:应使设备有高的利用率
作业量:每天执行尽可能多的作业
响应时间:有快的响应时间
性能衡量:可从不同的角度来判断处理机调度算法的性能,如:用户的角度、处理机的角度、算法实现的角度
实际的处理机调度算法选择是一个综合的判断结果
面向用户的调度性能准则
面向系统的调度性能准则
吞吐量:单位时间内所完成的作业数,与作业本身特性和调度算法都有关系——批处理系统
处理机利用率:——大中型主机,处理机昂贵
各种设备的均衡利用:保持系统中各种资源处于忙碌状态。如CPU繁忙的作业和I/O繁忙(指次数多,每次时间短)的作业搭配——大中型主机
算法本身的调度性能准则
易于执行;执行开销比
4.3 进程调度
4.3.1 进程调度的功能
4.3.2 进程上下文切换
4.3.3 进程调度的时机
4.3.4 进程调度性能评价
4.4 调度算法
4.4.1 先来先服务:简单的调度算法,按先后顺序进行调度
FCFS算法
按照作业提交或进程变为就绪状态的先后次序,分派CPU
当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)
在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。最简单的算法
FCFS特点
比较有利于长作业,而不利于短作业
有利于CPU繁忙的作业,而不利于I/O繁忙的作业
4.4.2 短作业优先 (SJF, Shortest Job First)
又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间
SJF算法
对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业
SJF优点
比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间
提高系统的吞吐量
SJF缺点
对长作业非常不利,可能长时间得不到执行
未能考虑作业的紧迫程度
难以准确估计作业(进程)的执行时间,从而影响调度性能
SJF变形
最短剩余时间优先SRT(Shortest Remaining Time):允许比当前进程剩余时间更短的进程来抢占
最高响应比优先HRRN(Highest Response Ratio Next):是FCFS和SJF的折衷。响应比R = (等待时间 + 要求执行时间) / 要求执行时间。
4.4.3 最高响应比优先(HRR)
4.4.4 时间片轮转算法 (Round Robin)
说明
前两种算法主要用于宏观调度,说明怎样选择一个进程或作业开始运行,开始运行后的作法都相同,即运行到结束或阻塞,阻塞结束时等待当前进程放弃CPU
本算法主要用于微观调度,说明怎样并发运行,即切换的方式;设计目标是提高资源利用率
其基本思路是通过时间片轮转,提高进程并发性和响应时间特性,从而提高资源利用率
4.4.5 多级队列算法 (Multiple-level Queue)
4.4.6 优先级算法
是多级队列算法的改进,平衡各进程对响应时间的要求。适用于作业调度和进程调度,可分成抢先式和非抢先式
静态优先级
定义:创建进程时就确定,直到进程终止前都不改变。通常是一个整数。
依据
进程类型(系统进程优先级较高)
对资源的需求(对CPU和内存需求较少的进程,优先级较高)
用户要求(紧迫程度和付费多少)
动态优先级
在创建进程时赋予的优先级,在进程运行过程中可以自动改变,以便获得更好的调度性能。如:
在就绪队列中,等待时间延长则优先级提高,从而使优先级较低的进程在等待足够的时间后,其优先级提高到可被调度执行;
进程每执行一个时间片,就降低其优先级,从而一个进程持续执行时,其优先级降低到出让CPU
4.4.7 多级反馈队列算法 (Round Robin with Multiple Feedback)
多级反馈队列算法
4.4.8 调度算法性能指标
FCFS, Round Robin, SRR周转时间比较
长作业时:T(FCFS) < T(SRR) < T(RR)(运行时间是主要因素);
短作业时:T(RR) < T(SRR) < T(FCFS)(等待时间是主要因素) 。
4.5 调度算法应用举例
4.6 实时调度
4.6.1 实时调度概述
4.6.2 实时调度分类
4.6.3 实时调度的特点
4.6.4 实时调度算法
静态表驱动调度(Static table-driven scheduling );
静态优先级驱动的剥夺调度(Static priority-driven preemptive scheduling );
动态分析调度算法(Dynamic planning-based scheduling );
无保障动态调度算法(动态最大努力调度Dynamic best effort scheduling )。
4.6.5 静态表驱动调度算法( Static table-driven scheduling )
4.6.6 静态优先级驱动的剥夺调度( Static priority-driven preemptive scheduling )
4.6.7 动态分析调度算法 (Dynamic planning-based scheduling)
4.6.8 无保障动态调度算法 (动态最大努力调度——Dynamic best effort scheduling)
4.7 多处理机调度(MultiProcessor Scheduling)
4.7.1 与单处理机调度的区别
根据各处理器是否相同,MPS可分为:
对称多处理器系统SMPS(Symmetric MultiProcessor System):系统所包含的各处理器单元,在功能和结构上都是相同的;
非对称多处理器系统ASMP( Asymmetric MultiProcessor ):系统中各处理器功能和结构不相同,其中包含一个主处理器,多个从处理器。
4.7.2 对称式多处理系统 (SMP)
4.7.3 非对称式多处理系统(ASMP)的处理机调度
4.7.4 成组调度 (Gang Scheduling)
可解决自调度线程切换频繁
4.7.5 专用处理机调度 (dedicated processor assignment)
为进程中的每个线程都固定分配一个CPU,直到该线程执行完成;
缺点:线程阻塞时,造成CPU的闲置;
优点:线程执行时不需切换,相应的开销可以大大减小,推进速度更快;
适用场合:CPU数量众多的高度并行系统,单个CPU利用率已不太重要。