8处理机调度

15.1处理机调度概念

CPU资源的时分复用

■进程切换:CPU资源的当前占用者切换

保存当前进程在PCB中的执行上下文(CPU状态)

恢复下一个进程的执行上下文

■处理机调度

从就绪队列中挑选下一个占用CPU运行的进程

从多个可用CPU中挑选就绪进程可使用的CPU资源

■调度程序:挑选就绪进程的内核函数

调度策略

依据什么原则挑选进程/线程?

调度时机

什么时候进行调度?

调度时机

■内核运行调度程序的条件

进程从运行状态切换到等待状态

进程被终结了

■非抢占系统

当前进程主动放弃CPU时

■可抢占系统

中断请求被服务例程响应完成时

当前进程被抢占

进程时间片用完

进程从等待切换到就绪


精髓:

操作系统根据进程的执行对三种类型的调度方案做出选择。长程调度确定何时允许一个新进程进入系统。中程调度是交换功能的一部分,它确定何时把一个程序的部分或全部取进内存,使得该程序能够被执行。短程调度确定哪一个就绪进程下一次被处理器执行。

15.2调度准则

处理机资源的使用模式

■进程在CPU计算和I/O操作间交替

每次调度决定在下一个CPU计算时将哪个工作交给CPU

在时间片机制下,进程可能在结束当前CPU计算前被迫放弃CPU(对进程执行不利)

比较调度算法的准则

■CPU使用率

CPU处于忙状态的时间百分比(需要是CPU尽可能的忙)

■吞吐量

单位时间内完成的进程数量

■周转时间

进程从初始化到结束的总时间(包括进入内存、在就绪队列中等待、在CPU上执行和I/O执行。通常受输出设备速度的限制)

■等待时间

进程在就绪队列中的总时间

■响应时间

从提交请求到产生响应所花费的总时间

吞吐量与延迟

■调度算法的要求

希望“更快”的服务

■什么是更快?

传输文件时的高带宽,调度算法的高吞吐量

玩游戏时的低延迟,调度算法的低响应延迟

这两个因素是独立的

■与水管的类比

低延迟:喝水的时候想要一打开水龙头水就流出来

高带宽:给游泳池充水时希望从水龙头里同时流出大量的水,并且不介意是否存在延迟

概念:需要使CPU使用率和吞吐量最大化,而使周转时间、等待时间和相应时间最小化。

处理机调度策略的响应时间目标

减少响应时间

及时处理用户的输入请求,尽快将输出反馈给用户

减少平均响应时间的波动

在交互系统中,可预测性比高差异低平均更重要

■低延迟调度改善了用户的交互体验

如果移动鼠标时,屏幕中的光标没动,用户可能会重启电脑

■响应时间是操作系统的计算延迟

处理机调度策略的吞吐量目标

增加吞吐量

减少开销(操作系统开销,上下文切换)

系统资源的高效利用(CPU,I/O设备)

减少等待时间

减少每个进程的等待时间(可以提高它的响应性能也可以提高它的吞吐量的性能)

■操作系统需要保证吞吐量不受用户交互的影响

操作系统必须不时进行调度,即使存在许多交互任务

■吞吐量是操作系统的计算带宽

处理机调度的公平性目标

公平的定义

保证每个进程占用相同的CPU时间

保证每个进程的等待时间相同

公平通常会增加平均响应时间

15.3调度算法

先来先服务算法(First Come First Served, FCFS)


依据进程进入就绪状态的先后顺序排列

进程进入等待或结束状态时(进程主动让出cpu),就绪队列中的下一个进程占用CPU

优点

简单

缺点

·平均等待时间波动较大

短进程可能排在长进程后面

·I/O资源和CPU资源的利用率较低

CPU密集型进程会导致I/O设备闲置时,I/O密集型进程也等待

短进程优先算法(SPN)


选择就绪队列中执行时间最短进程占用CPU进入运行状态

就绪队列按预期的执行时间来排序

短剩余时间优先算法(SRT)

SPN算法的可抢占改进

优点

短进程优先算法具有最优平均周转时间


缺点

·可能导致饥饿

连续的短进程流会使长进程无法获得CPU资源

·需要预知未来

如何预估下一个CPU计算的持续时间?

简单的解决办法:询问用户

用户欺骗就杀死相应进程

用户不知道怎么办?

短进程优先算法的执行时间预估

用历史的执行时间来预估未来的执行时间

最高响应比优先算法(HRRN)

选择就绪队列中响应比R值最高的进程

R=(w+s)/s

w:等待时间(waiting time)

s:执行时间(service time)

在短进程优先算法的基础上改进

不可抢占

关注进程的等待时间

防止无限期推迟

时间片轮转算法(RR, Round-Robin)

时间片

分配处理机资源的基本时间单元q

算法思路

时间片结束时,按FCFS算法切换到下一个就绪进程

每隔(n–1)个时间片进程执行一个时间片q


注:分配了一个基本时间单元q,每个进程每次在时间片q的时间内执行,没完成则继续排队尾,完成了结束。

时间片为20的RR算法示例

时间片轮转算法中的时间片长度

RR算法开销

额外的上下文切换

时间片太大(退化成FCFS)

等待时间过长

极限情况退化成FCFS

时间片太小

反应迅速,但产生大量上下文切换

大量上下文切换开销影响到系统吞吐量

时间片长度选择目标

选择一个合适的时间片长度

经验规则:维持上下文切换开销处于1%以内

比较FCFS和RR

多级队列调度算法(MQ)

■就绪队列被划分成多个独立的子队列

如:前台(交互)、后台(批处理)

■每个队列拥有自己的调度策略

如:前台–RR、后台–FCFS

■队列间的调度

·固定优先级

先处理前台,然后处理后台

可能导致饥饿

·时间片轮转

每个队列都得到一个确定的能够调度其进程的CPU总时间

如:80%CPU时间用于前台,20%CPU时间用于后台

多级反馈队列算法(MLFQ)

注:例:分三个执行队列,0队列的时间片是8,1队列的时间片是24,2队列采用FCFS。不超过8的进程有最高优先级,接下来依次。在队列0中未执行完的进程将会排至队列1末尾,队列1中未执行完的排队列2尾。

■进程可在不同队列间移动的多级队列算法

时间片大小随优先级级别增加而增加(优先级高时间片小)

如进程在当前的时间片没有完成,则降到下一个优先级(执行时间越长,优先级调的越低)

■MLFQ算法的特征

CPU密集型进程的优先级下降很快,优先级会逐步降低,并且时间片会分的很大

I/O密集型进程停留在高优先级

公平共享调度(FSS, Fair Share Scheduling)

■FSS控制用户对系统资源的访问

一些用户组比其他用户组更重要(用户分组,根据重要程度)

保证不重要的组无法垄断资源

未使用的资源按比例分配

没有达到资源使用率目标的组获得更高的优先级

传统调度算法总结

先来先服务算法

不公平,平均等待时间较差

短进程优先算法

不公平,平均周转时间最小

需要精确预测计算时间

可能导致饥饿

最高响应比优先算法(主要考虑等待时间)

基于SPN调度

不可抢占

时间片轮转算法

公平,但是平均等待时间较差,交互性很好

多级反馈队列

多种算法的集成

公平共享调度

公平是第一要素

概念:先到先服务〔FCFS)调度是最简单的调度算法,但是它会让短进程等待非常长的进程。最短作业优先(SJF)调度可证明是最佳的,它提供了最短平均等待时间。实现SJF调度比较困难,因为预测下一个CPU区间的长度有难度。SJF算法是通用优先级调度算法(将CPU简单地分配给具有最高优先级的进程)的特例。优先级和SJF调度会产生饥饿。老化技术(随等待时间增加逐渐提高优先级)可阻止饥饿。

轮转法(RR)调度对于分时(交互)系统更为合适。RR调度让就绪队列的第一个进程使用CPU的q个时间单元,这里q是时间片。在q时间单元之后,如果该进程还没有释放CPU,那么它被抢占并放到就绪队列的尾部。该算法是主要问题是选择时间片。如果时间片太大,那么RR调度就成了FCFS调度:

如果时间片太小,那么因上下文切换而引起的调度开销就过大。

FCFS算法是非抢占的,而RR算法是抢占的。SJF和优先级算法可以是抢占的,也可以是非抢占的。

多级队列调度算法允许多个不同算法用于各种类型的进程。最为常用的模型包括使用RR调度的前台交互队列,以及使用FCFS调度的后合批处理队列。多级反馈队列调度算法允许进程在队列之间迁移。

15.5实时调度

实时操作系统

实时操作系统

正确性依赖于其时间功能两方面的操作系统

实时操作系统的性能指标

时间约束的及时性(deadlines

速度和平均性能相对不重要

实时操作系统的特性

时间约束的可预测性

实时操作系统分类

强实时操作系统

要求在指定的时间内必须完成重要的任务

弱实时操作系统

重要进程有高优先级,要求尽量但非必须完成

实时任务

任务(工作单元)

一次计算,一次文件读取,一次信息传递等等

任务属性

完成任务所需要的资源

定时参数

周期实时任务

周期实时任务:一系列相似的任务

任务有规律地重复

周期p =任务请求时间间隔(0

执行时间e =最大执行时间(0 < e < p)

使用率U = e/p

软时限和硬时限

硬时限(Hard deadline)

错过任务时限会导致灾难性或非常严重的后果

必须验证,在最坏情况下能够满足时限

软时限(Soft deadline)

通常能满足任务时限

如有时不能满足,则降低要求

尽力保证满足任务时限

可调度性

可调度表示一个实时操作系统能够满足任务时限要求

需要确定实时任务的执行顺序

静态优先级调度(事先把执行顺序排出来,按这个顺序调度,理论上保证能够满足要求)

动态优先级调度(执行过程中给出执行顺序)

实时调度

速率单调调度算法(RM, Rate Monotonic)(静态)

通过周期安排优先级

周期越短优先级越高

执行周期最短的任务

最早截止时间优先算法(EDF, Earliest Deadline First)动态

截止时间越早优先级越高

执行截止时间最早的任务

15.5(2)多处理器调度

多处理机调度的特征

多个处理机组成一个多处理机系统

处理机间可负载共享

对称多处理器(SMP, Symmetric multiprocessing)调度

每个处理器运行自己的调度程序

调度程序对共享资源的访问需要进行同步

对称多处理器(SMR)的进程分配

静态进程分配

进程从开始到结束都被分配到一个固定的处理机上执行

每个处理机有自己的就绪队列

调度开销小

各处理机可能忙闲不均

动态进程分配

进程在执行中可分配到任意空闲处理机执行

所有处理机共享一个公共的就绪队列

调度开销大

各处理机的负载是均衡的

概念:

处理器亲和性:绝大多数SMP系统试图避免将进程从一个处理器移至另一个处理器,而是努力使一个进程在同一个处理器上运行

负载平衡(load balancing):Push migration,pull mifration。

对称多线程(SMT):通过提供多个物理处理器,SMP系统允许同时运行几个线程。另一种方法是提供多个逻辑(而不是物理逻辑)处理器来实现。SMT是硬件而不是软件提供的。

15.6优先级反置(Priority Inversion)

操作系统中出现高优先级进程长时间等待低优先级进程所占用资源的现象

基于优先级的可抢占的调度算法存在优先级反置

注:已经排好的执行队列中有T1。T2两个进程,T1的优先级比T2低,这是一个处于中间的进程T3抢占T1,三个都要用的资源L1现在被T3占用,这就是优先级反置。

解决方法:优先级继承(Priority Inheritance),优先级天花板协议(priority ceiling protocol)

优先级继承(Priority Inheritance)

■占用资源的低优先级进程继承申请资源的高优先级进程的优先级

只在占有资源的低优先级进程被阻塞时,才提高占有资源进程的优先级

优先级天花板协议(priority ceiling protocol)

■占用资源进程的优先级和所有可能申请该资源的进程的最高优先级相同

不管是否发生等待,都提升占用资源进程的优先级

优先级高于系统中所有被锁定的资源的优先级上限,任务执行临界区时就不会被阻塞

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容