第三章 处理机调度与死锁

1.处理机调度的基本概念

1)高级调度:

又称作业调度或长程调度(Long-Term Scheduling),接纳调度(Admission Scheduling)

作业调度决定的细节

接纳多少作业——取决于多道程序度。应根据系统的规模和运行速度等情况综合考虑。

接纳哪些作业——取决于采用的调度算法。如先来先服务,短作业优先等

系统运行并不一定存在高级调度

批处理系统:作业进入系统后先驻留外存,故需要有作业调度。

分时系统:为及时响应,作业由终端直接送入内存,故不需作业调度。

实时系统中,通常也不需作业调度。

2)低级调度:

也称为进程调度、微观调度或短程调度(Short-Term Scheduling)。决定内存就绪队列中的哪个进程获得处理机,进行分配工作。是最基本的一种调度,在三种基本OS中都有。

(1)进程调度方式

非抢占方式(Non-preemptive Mode)

一旦处理机分配给某进程,该进程一直执行。决不允许其他进程抢占已分配运行进程的处理机。

抢占方式(Preemptive Mode)

允许调度程序根据某种原则,暂停某个正在执行的进程,将处理机重新分配给另一进程。

(2)进程调度方式比较

(3)中级调度

又称交换调度或中程调度(Medium-Term Scheduling)

引入目的:提高内存利用率和系统吞吐量。根据条件将一些进程调出或再调入内存。

(4)调度队列模型

仅有进程调度的调度队列模型: 分时系统

具有高级和低级调度的调度队列模型:批处理系统中,还需要作业调度

同时具有三级调度的调度队列模型

(5)选择调度方式和调度算法的若干准则

① 面向用户的准则:

周转时间短、响应时间快、均衡性、截止时间的保证、优先权准则

② 面向系统的准则:

系统吞吐量高、处理机利用率好(主要针对大中型主机)、各类资源的平衡利用(主要针对大中型主机)

2.常用调度算法

1)先来先服务调度算法FCFS

一种最简单的调度算法,按先后顺序进行调度。既可用于作业调度,也可用于进程调度。

2)短作业(进程)优先调度算法SJF/SPF(抢占式和非抢占式)

SJF/SPF的不足:

①. 对短作业有利,但同时造成了对长作业的不利。

②.由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。

 ③.未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)的及时处理。

3)高优先权优先调度算法HPF (抢占式和非抢占式)

照顾紧迫性作业,使其获得优先处理而引入调度算法。常用于批处理系统中的作业调度算法,以及多种操作系统中的进程调度算法

(1)优先权的类型

静态优先权:创建进程时确定,整个运行期间保持不变。一般利用某一范围的一个整数来表示,又称为优先数。

动态优先权:创建进程时赋予的优先权可随进程的推进或随其等待时间的增加而改变。

(2)进程优先权的确定

进程类型、进程对资源的需求、用户需求

4)高响应比优先调度算法HRRN

HRRN为每个作业引入动态优先权,使作业的优先级随着等待时间的增加而以速率a提高:

  优先权 =(等待时间+要求服务时间)/要求服务时间= 响应时间 / 要求服务时间

(1)同时到达的作业优先权相同。

(2)当执行时间相同的作业,优先权的高低决定于其等待时间的长短,也就是先来先服务。

5)基于时间片的轮转调度算法RR�

分时系统新需求:及时响应用户的请求;采用基于时间片的轮转式进程调度算法。

(1)时间片轮转算法

将系统中所有的就绪进程按照FCFS原则,排成一个队列。

每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。

在一个时间片结束时,发生时钟中断。

调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前就绪的队首进程。

(2)多级反馈队列算法FB

设置多个就绪队列,各队列有不同的优先级,优先级从第一个队列依次降低。

 赋予各队列进程执行时间片大小不同, 优先权越高,时间片越短。

6)几种常用调度算法的比较


3.实时调度

1)实现实时调度的基本条件

提供必要的信息

系统处理能力足够强

采用抢占式调度机制

具有快速切换机制

2)实时调度算法的分类

非抢占调度算法

抢占式调度算法

3)常用的几种实时调度算法

(1)最早截止时间优先EDF

根据任务的开始截止时间来确定任务的优先级。截止时间越早,其优先级越高。

(2)最低松弛度优先LLF�

根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度越高(松弛度值越小),优先级就越高。

松弛度= 截止完成时间 – 还需执行时间 - 当前时间

可理解为当前时刻到开始截止时刻间的差距,随着时间的推进,这个差值逐渐变小,任务越来越紧迫。

4.产生死锁的原因和必要条件

死锁(Deadlock):指多个进程在运行过程中,因争夺资源而造成的一种僵局。当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。

死锁(Deadlock): 指进程之间无休止地互相等待!

饥饿(Starvation):指一个进程无休止地等待!

1)竞争资源引起进程死锁

可把系统中的资源分为两类:

可剥夺和非剥夺性资源

永久性资源和临时性资源

2)进程推进顺序不当引起死锁

3) 产生死锁的必要条件

互斥条件:

进程对所分配到的资源进行排他性使用

请求和保持条件:

进程已经保持了至少一个资源,又提出新的资源请求,而新请求资源被其他进程占有只能造成自身进程阻塞,但对自己已获得的其他资源保持不放,必然影响其他进程。

不剥夺条件:

进程已获得的资源未使用完之前不能被剥夺,只能在使用完时由自己释放。

环路等待条件

4)处理死锁的基本方法

事先预防:

(1)预防死锁:

(2)避免死锁:

事后处理:

(3)检测死锁

(4)解除死锁

5.预防死锁的方法

1)预防死锁

(1)摒弃“请求和保持”条件

(2)摒弃“不剥夺”条件

(3)摒弃“环路等待”条件

6.死锁的检测与解除

当系统为进程分配资源时,若未采取任何限制性措施,则系统必须提供检测和解除死锁的手段,为此系统必须:

保存有关资源的请求和分配信息;

提供一种算法,以利用这些信息来检测系统是否已进入死锁状态。

1)死锁的检测

检测时机:

当进程等待时检测死锁

定时检测

系统资源利用率下降时检测死锁

2)死锁定理

利用资源分配图简化法来检测死锁

3)死锁检测算法:

* 每个进程和资源指定唯一编号

* 设置一张资源分配表

  记录各进程与其占用资源之间的关系

* 设置一张进程等待表

  记录各进程与要申请资源之间的关系

4)死锁的解除

当发现进程死锁时,便应立即把它们从死锁状态中解脱出来。常采用的方法是:

剥夺资源:

从其他进程剥夺足够数量的资源给死锁进程以解除死锁状态。

撤销进程:

最简单的是让全部进程都死掉;温和一点的是按照某种顺序逐个撤销进程,直至有足够的资源可用,使死锁状态消除为止。

5)死锁处理方法比较


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

推荐阅读更多精彩内容

  • 做眼镜私人定制的几年,感觉每一天都是新鲜的。不仅仅是每一天都不可预知,更是因为会接触到各种不同性情的客户。他们有的...
    眼镜姐姐Lily阅读 259评论 0 0
  • 今天早上我起床出去了一下,鑫蕾以为我要走,6点多就起床,自己迷迷糊糊的套上衣服就出去找我。我说你起那么早干嘛,不多...
    2021级张鑫泽妈妈阅读 91评论 0 2
  • 六月,一个充满了阳光与活力的季节。我总以为我还算有点文采,总能以笔为友,写些感触,写些心情,总是把文字当成一种寄托...
    KING_小雪阅读 332评论 2 2