第五章 资源分配与调度

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章 资源分配与调度
5.1 资源管理概述 5.2 资源分配机制 5.3 资源分配策略 5.4 死锁
5.1 资源管理概述
一. 资源管理的目标
1、保证资源的高利用率; 2、在“合理”时间内使所有顾客有获得所需资源的机会 ; 3、对不可共享的资源实施互斥使用; 4、防止由资源分配不当而引起的死锁。
二. 资源管理的功能
直至死锁消失; ④ 从某个存在的中间检测点重新启动各死锁进程。
第五章 小结
一.资源管理概念 二.资源分配机制 1. 资源描述器:定义、内容、组织形式 2. 资源信息块:定义、结构 三.资源分配策略 1. 常用的两种分配策略:先请求先服务、优先调度策略 2. 针对设备特性的调度策略:旋转调度、移臂调度
p(Sn); p(Sb); 过B桥; v(Sb); 过弯道; p(Sa); v(Sn); 过A桥; v(Sa); }
• 例如:进程PA,使用资源的顺序是R1,R2;

进程PB,使用资源的顺序是R2,R1;
• 若采用动态分配有可能形成环路条件,造成死锁。
• 采用有序资源分配法:R1的编号为1,R2的编号为2;
• PA:申请次序应是:R1,R2
• PB:申请次序应是:R1,R2
• 这样就破坏了环路条件,避免了死锁的发生。
二. 资源信息块
资源信息块:描述某类资源的请求者、可用资源情 况和该类资源分配程序等必要信息的数据结构。
等待队列头指针 可利用资源队列头指针 资源分配程序入口地址
pcb1
pcb2
rd1
rd2
pcbk rdn
例1:主存资源描述
分区主存分布
0
OS 20K 作业A 46K
66K
64K
130K 作业B 100K
解:设进程i所需资源数为ri,根据题意: r1+ r2+……+ rp<p+m 即
(r1-1)+ ( r2 -1) +……+ ( rp -1) <m 因此,在最坏的情况下也至少有一个进程能得
到它所需的所有资源,从而可以运行完毕,之后就 可以释放它所占有的资源,近而使所有进程运行完 毕。
5-6
弯道
运河
四.死锁 1. 死锁的定义及例子 2. 产生死锁的原因、必要条件 3. 死锁的预防:资源静态分配 4. 死锁的避免:有序资源分配方法、银行家算法 建议作业题:5-4、5-6
5-5 P个进程共享m个同类资源,每一个资源在 任一时刻只能供一个进程使用,每一进程对任 一资源都只能使用一有限时间,使用完便立即 释放。并且每个进程对该类资源的最大需求量 小于该类资源的数目。设所有进程对资源的最 大需求数目之和小于p+m。试证:该系统中不 会发生死锁。
位置上。而当资源可用时,选取队列中第一个请求,并满
足其需要。
pcbi pcbj
pcbk

rib
等待队列头指针 可利用资源队列头指针 资源分配程序入口地址
按优先级高低排序


三. 针对设备特性才的调度
例:磁盘调度 以尽量减少磁盘旋转次数和活动臂的移臂长度 为原则。
5.4 死锁
一. 死锁的概念
为了最大限度地利用计算机系统资源,操作系 统应采用动态分配各类资源的策略。然而,采用这 种策略时,若分配不当可能出现这种危险:两个或 几个进程彼此之间出现互相等待的情况,即每个进 程都“抓住”一些为其它进程所等待的资源不放, 其结果是谁也得不到所申请的全部资源,所有这些 进程都无法继续运行。
1、资源数据结构的描述 构造资源分配所需的数据结构,应包含该资源的物 理名、逻辑名、类型、地址、分配状态等信息。
2、确定资源的分配原则 (调度原则) 确定资源分配原则,即决定资源应分给谁,何时分
3、实施资源分配 根据所确定的资源分配原则以及用户的要求,执行
资源分配。当资源使用完毕后,收回资源以便重新分 配给其他作业和进程使用。
M-rib
等待队列指针
66K 内存分配程序 入口地址
230K
26K
256K
pcbi
pcbj

rd1
标志 0 大小 64K 勾链字
rd2
标志 0 大小 64K 勾链字
例2:中央处理机资源描述
cpu - rib
ready-q-start
pcb1
pcb2
pcbk
running
scheduler-addr
缺点:①资源利用率低。 ②作业等待时间长。
五. 死锁的避免
1. 有序资源使用法 系统中的所有资源类都分给一个唯一的序
号,并要求每个进程均应严格按照递增的次序 请求资源。
有序资源使用法破坏了产生死锁的环路条 件,从而不可能产生死锁。
缺点:对于实际资源使用顺序与资源序号 不一致的作业仍存在着资源浪费现象。
1. 产生死锁的原因 ① 资源不足 ② 进程推进次序不合适
2. 产生死锁的必要条件 ① 互斥条件 一个资源一次只能被一个进程使用。 ② 不可剥夺条件 一个资源仅能被占有它的进程释放。 ③ 部分分配 一个进程已占有了一些资源,但仍然要求其它资源。 ④ 环路条件 系统中存在着一个由若干个进程形成的环形请求链。
B
A
100m
河道
公路
Main() { int Sa=Sb=1; int Sn=n; cobegin Pship( ); Pcar( ); coend }
Pship( ) {
p(Sa); 船头过A桥; p(Sb); 船头过B桥; 船尾过A桥; v(Sa); 船尾过B桥; v(Sb); }
ຫໍສະໝຸດ Baidu
Pcar( ) {
pcb5
5.3 资源分配策略
策略是要给出资源分配机构的使用方法,它涉及到在 相应资源满足的情况下,批准请求的决策。这也就是要指定 一个资源分配的原则,当某类资源有空闲时,将它分配给哪 一个请求者?分多少?占用多长时间?确定这样一类问题的 原则就是资源分配的策略。
一. 先请求先服务
排序原则:按请求的先后次序排序。 每一个新产生的请求均排在队尾,而当资源可用时,资 源分配程序则从队列中选取第一个请求,并满足其需要。
pcbi pcbj
pcbk

rib
等待队列头指针 可利用资源队列头指针 资源分配程序入口地址
按请求的先后次序


二. 优先调度
在优先调度策略下,对于每一个进程(或作业)要指定一
个优先级,优先级反映了进程要求处理的紧迫程度。
排序原则:按优先级的高低排序。
每一个新产生的请求,按其优先级的高低插到相应的
例1:资源竞争产生死锁 进程P
进程Q
: 请求读卡机
: 请求打印机
: 释放读卡机
: 释放打印机
:
: 请求打印机
: 请求读卡机
: 释放读卡机
: 释放打印机
:
例2:P、V操作使用不当产生死锁
进程P
进程Q
: P(S1);
: P(S2);
: V(S1);
: V(S2);
:
: P(S2);
: P(S1);
: V(S2);
• 此时,系统中只剩下2个资 源,这时就要考察能满足哪 个进程,不能满足P和R的最 大要求,能满足Q,于是将 剩下的2个资源分配给Q,Q 就能完成,然后释放所占用 的6个资源。
• 可满足P,也可满足R,这时 不论分给谁都能保证完成。
六. 死锁的检测与恢复
1. 死锁的检测
① 由系统提供检测算法 ②由计算机操作员检测
4、存取控制和安全保护 对资源的存取进行控制并对资源实施安全保护措施。
三. 资源的静态分配和动态分配
1. 资源的静态分配 系统对作业一级采用资源静态分配方法。 系统在调度作业时,根据作业所需资源进行分配;并在
作业运行完毕时,收回所分配的全部资源。这种分配通常称 为资源的静态分配。
2. 资源的动态分配 系统对进程一级采用资源静态分配方法。 系统在进程运行中,根据进程提出的资源需求,进行资
: V(S1);
:
注:S1、S2的初值为1
例3:资源竞争产生死锁
m个资源被n个资源共享,每个进程要求k个资 源,则当 m<=n*(k-1) 时,如果分配不当就可能发 生死锁。
死锁的定义:在两个或多个并发进程中,如果 每个进程持有某种资源而又都等待着别的进程释放 它或它们现在保持着的资源,否则就不能向前推进。 此时每个进程都占用了一定的资源但又都不能向前 推进,称这一组进程产生可死锁。
二. 死锁的起因和条件
P2 进 展
D2
C2
N
B2
危险区
A2
A1
A1: P1 request (r1) B1: P1 request (r2) C1: P1 release (r1) D1: P1 release (r2)
B1 C1 D1
P1进展
A2: P2 request (r2) B2: P2 request (r1) C2: P2 release (r2) D2: P2 release (r1)
r1
P1
P2
r2
资源——进程有向图
只有四个条件都发生时才会产生死锁
三. 解决死锁问题的策略
1. 预防死锁 (采用静态资源分配法) 2. 避免死锁 (动态资源分配,采用有控分配避免死锁) 3. 当死锁发生时检测出死锁,并设法修复。
四. 死锁的预防
预先静态分配法:仅当系统能满足作业运 行时所需的全部资源时,才把该作业调入内存 运行,同时在作业运行前,将其所需的全部资 源一次性地分配给该作业。作业在运行过程中 不再提出新的资源要求。
2. 银行家算法 检查申请者对各类资源的最大需求量,如
果系统现存的各类资源可以满足它的最大需求 量,就满足当前的申请。
缺点: ①必须事先知道每个进程的资源最大需求量。 ②算法过于保守。 ③要求系统资源与用户数不变。
• 例子:假定系统有10个资源 (为了说明问题的简单,不 管它是什么资源),目前分 配的情况如上表:
通常的方法是程序员的经验,如UNIX系统中, 可考察进程的运行时间。在UNIX系统中有命令PS 可显示进程占用CPU的时间,若发现有一组进程在 一段时间内没有占用CPU,就认为这类进程出现了 死锁。
2. 死锁的恢复
① 撤消陷于死锁的全部进程; ② 逐个撤消陷于死锁的进程,直到死锁不存在; ③ 从陷于死锁的进程中逐个强迫放弃所占用的资源,
源的动态分配和回收。这种分配通常称为资源的动态分配。
5.2 资源分配机制
• 描述资源的管理和控制信息的数据结构称为资源分配 的机构 。
• 在教材上列出了两种:

资源描述器
资源信息块
• 在实际的系统中,会根据实际需要设计相应的数据结 构。例如:进程管理主要管理的机构:PCB、就绪队 列和各种等待队列。
一. 资源描述器
资源描述器:描述各类资源的最小分配单位的数据 结构。
如:主存最小分配单位: 在分区分配中——主存分区
磁盘最小分配单位: 磁盘面中的一个扇区
资源描述器的内容
资源名 资源类型 最小分配单位的大小 最小分配单位的地址 分配标志 描述器链接信息 存取权限 密级 最后一次存取时间 记帐信息 资源其它特性
相关文档
最新文档