银行家算法例子+答案
第三章处理机调度及答案

进程管理
进程管理
【解答】 ①系统资源总数向量为(9, 3, 6) 各进程对资源需求矩阵为: ②采用银行家算法进行计算分析可知:
进程管理
2、调度算法
现有如下作业序列:作业1(提交时间8.00,运行时间 1.00);作业2(提交时间8.30,运行时间3.00);作 业3(提交时间9.00,运行时间0.10);作业4(提交 时间9.30,运行时间0.50)(单位:小时,以十进制 计)。 试用先来先服务和短作业优先调度算法处 理该作业序列,问哪种作业调度算法性能更好(要求给 出计算的数据和必要的步骤)。(华中科技大学2001年 试题)
处理机调度作业
进程管理
1、银行家算法
某系统有R1、R2和R3共3种资源,在T0时刻P1、P2、P3 和P4这4个进程对资源的占用和需求情况见表2.2,此刻 系统的可用资源向量为(2, 1, 2),问题:(中科院软 件所1999年试题) ①将系统中各种资源总数和此刻各进程对各资源的需求 数目用向量或矩阵表示出来;②如果此时P1和P2均发出 资源请求向量Request(1, 0, 1),为了保持系统安全 性,应该如何分配资源给这两个进程?说明你所采用策 略的原因;③如果②中两个请求立刻得到满足后,系统 此刻是否处于死锁0
40
50
60
70
80
90
J1: IO2(30ms), CPU(10ms), IO1(30ms), CPU(10ms). J2: IO1(20ms), CPU(20ms), IO2(40ms). J3: CPU(30ms), IO1(20ms).
进程管理
【解答】 (1) 由上图可知:J1从开始到完成的时间是0~ 80msJ2从开始到完成的时间是0~90msJ3从开始到 完成的时间是0~90ms (2) 三个作业全部完成时CPU的利用率是:
银行家算法例题详解算法设计题详解

银行家算法例题详解算法设计题详解算法设计的特征:有穷性,确定性,输入和输出,可行性运行算法的时间:硬件的速度。
书写程序的语言。
问题的规模,编译生成程序的代码质量算法复杂度: 时间复杂度和空间复杂度1.迭代法迭代法又称为辗转法,是用计算机解决问题的一种基本方法,为一种不断用变量的旧值递推新值的过程,与直接法相对应,一次性解决问题。
迭代法分为精确迭代和近似迭代,“二分法”和“牛顿迭代法”属于近似迭代法。
迭代法利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。
利用迭代算法解决问题,需要做好以下三个方面的工作:1. 确定迭代变量(在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。
)2. 建立迭代关系式(所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。
迭代关系式的建立是解决迭代问题的关键,通常可以顺推或倒推的方法来完成。
)3. 对迭代过程进行控制(在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。
不能让迭代过程无休止地重复执行下去。
迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。
对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。
)2.穷举搜索法穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,并从众找出那些符合要求的候选解作为问题的解。
即本方法使用可以理解为暴力循环方法,穷举所有可能性,一般这种方法的时间效率太低,不易使用。
但是方法简单,易理解。
3.递推法递推是计算机数值计算中的一个重要算法,思路是通过数学推导,将复杂的运算化解为若干重复的简单运算,以充分发挥计算机长于重复处理的特点。
银行家算法问题

银行家算法问题1、银行家算法中的数据结构(1)可利用资源向量Available : []Availabel j k = 式中:j 01j m ≤≤-一个含有m 个(类)元素的数组,每个元素代表一类可利用的资源数目。
上式表示系统中现有的第j 类资源可用数目为k 个。
(2)最大需求矩阵Max : [,]Max i j k = 式中: i 01i n ≤≤-j 01j m ≤≤-n 个进程中的每一个进程对m 类资源的最大需求量,上式表示进程i 需求第j 类资源的最大数目为k 。
(3)分配矩阵Allocation : [,]Allocation i j k = 式中: i 01i n ≤≤- j 01j m ≤≤-n 个进程中的每一个进程对m 类资源的分配量,上式表示进程i 已分配到第j 类资源的数目为k 。
(4)需求矩阵Need :[,]Need i j k = 式中: i 01i n ≤≤- j 01j m ≤≤-n 个进程中的每一个进程对m 类资源的需求量,上式表示进程i 对第j 类资源的需求量为k 个。
(5)三个矩阵间的关系[,][,][,]Need i j Max i j Allocation i j =-2、银行家算法设Re i quest 是进程i P 的请求向量,如果Re []i quest j k =,当i P 发出资源请求后,系统按下述步骤进行检查。
(1)如果Re [][,]i quest j Need i j ≤,便转向步骤(2),否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2)如果Re [][]i quest j Available j ≤便转向步骤(3),否则表示尚无足够资源,i P 须等待。
(3)系统试探着把资源分配给进程i P ,并修改下面的数据结构中的值:[][]Re []i Availabel j Availabel j quest j =- [,][,]R e [i A l l o c a t i o n i jA l l o c a t i o n i j q u e s t j=+ [,][,]Re []i Need i j Need i j quest j =-(4)系统执行安全性算法,检查此次资源分配后系统是否处于安全状态。
操作系统之调度算法和死锁中的银行家算法习题参考答案

操作系统之调度算法和死锁中的银行家算法习题参考答案集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-1.有三个批处理作业,第一个作业10:00到达,需要执行2小时;第二个作业在10:10到达,需要执行1小时;第三个作业在10:25到达,需要执行25分钟。
分别采用先来先服务,短作业优先和最高响应比优先三种调度算法,各自的平均周转时间是多少?解:先来先服务:(结束时间=上一个作业的结束时间+执行时间周转时间=结束时间-到达时间=等待时间+执行时间)按到达先后,执行顺序:1->2->3短作业优先:1)初始只有作业1,所以先执行作业1,结束时间是12:00,此时有作业2和3;2)作业3需要时间短,所以先执行;3)最后执行作业2最高响应比优先:高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。
1)10:00只有作业1到达,所以先执行作业1;2)12:00时有作业2和3,作业2:等待时间=12:00-10:10=110m;响应比=1+110/60=2.8;作业3:等待时间=12:00-10:25=95m,响应比=1+95/25=4.8;所以先执行作业33)执行作业22.在一单道批处理系统中,一组作业的提交时刻和运行时间如下表所示。
试计算一下三种作业调度算法的平均周转时间T和平均带权周转时间W。
(1)先来先服务;(2)短作业优先(3)高响应比优先解:先来先服务:作业顺序:1,2,3,4短作业优先:作业顺序:1)8:00只有作业1,所以执行作业1;2)9:00有作业2和3,作业3短,所以先执行3;3)9:12有作业2和4,作业4短,所以先执行4;4)执行作业2高响应比优先:作业顺序:1)8:00只有作业1,所以执行作业1;2)9:00有作业2和3作业2等待时间=9:00-8:30=30m,响应比=1+30/30=2;作业3等待时间=9:00-9:00=0m,响应比=1+0/12=1;所以执行作业2;3)9:30有作业3和4作业3等待时间=9:30-9:00=30m,响应比=1+30/12=3.5;作业4等待时间=9:30-9:06=24m,响应比=1+24/6=5;所以执行作业44)执行作业33.设系统中有3种类型的资源(A,B,C)和5个进程(P1,P2,P3,P4,P5),A资源的数量为17,B资源的数量为5,C资源的数量为20。
(完整word版)银行家算法例题

(完整word版)银行家算法例题银行家算法例题假定系统中有五个进程{P0,P1,P2,P3,P4} 和三类资源{A ,B,C},各种资源的数量分别为10、5、7,在T0 时刻的资源分配情况(1)T0时刻的安全性利用安全性算法对T0时刻的资源分配情况进行分析(2)P1请求资源:P1发出请求向量Request1(1,0,2),系统按银行家算法进行检查①Request1(1,0,2)≤Need1(1,2,2)②Request1(1,0,2)≤Available1(3,3,2)③系统先假定可为P1分配资源,并修改Available ,Allocation1和Need1向量,由此形成资源情况进程Max Allocation Need Available A B C A B C A B C A B C P0 7 5 3 0 1 0 7 4 3 3 3 2 P1 3 2 2 2 0 0 1 2 2 P2 9 0 2 3 0 2 6 0 0 P3 2 2 2 2 1 1 0 1 1 P44 3 30 0 24 3 1资源情况进程Work A B C Need A B C Allocation A B CWork+Allocatio n A B C FinishP1 3 3 2 1 2 2 2 0 0 5 3 2 TRUE P3 5 3 2 0 1 1 2 1 1 7 4 3 TRUE P4 7 4 3 4 3 1 0 0 2 7 4 5TRUE P2 7 4 5 6 0 0 3 0 2 10 4 7 TRUE P010 4 77 4 30 1 010 5 7的资源变化情况如下图所示。
④再利用安全性算法检查此时系统是否安全。
P1 申请资源时的安全性检查(3)P4请求资源:P4发出请求向量Request4(3,3,0),系统按银行家算法进行检查:①Request4(3,3,0)≤Need4(4,3,1);②Request4(3,3,0)≮Available (2,3,0),让P4等待。
计算机操作系统(银行家算法实例详解与更正)(2)

计算机操作系统(银行家算法实例详解与更正)(2)《计算机操作系统》(第三版)——银行家算法最具代表性的避免死锁的算法是Dijkstra的银行家算法,这是由于该算法用于银行系统现金贷款的发放而得名的。
为实现银行家算法,系统中必须设置若干数据结构。
1、银行家算法中的数据结构(1)可利用资源向量Available。
这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。
如果Available[j]=K,则表示系统中现有R j类资源K个。
(2)最大需求矩阵Max。
这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。
如果Max[i,j]=K,则表示进程i需要R j类资源的最大数目为K。
(3)分配矩阵Allocation。
这也是一个n×m的矩阵,它定义了系统中每一类资源当前已分配给每一进程的资源数。
如果Allocation[i,j]=K,则表示进程i当前已分得R j类资源的数目为K。
(4)需求矩阵Need。
这也是一个n×m的矩阵,用以表示每一个进程尚需的各类资源数。
如果Need[i,j]=K,则表示进程i还需要R j 类资源K个,方能完成其任务。
上述三个矩阵间存在下述关系:Need[i, j]=Max[i, j]-Allocation[i, j]2、银行家算法设Request i是进程P i的请求向量,如果Request i[j]=K,表示进程P i需要K 个R j类型的资源。
当P i发出资源请求后,系统按下述步骤进行检查:(1)如果Request i[j]≤Need[i,j],便转向步骤(2);否则认为出错,因为它所需要的资源数已超过它所宣布的最大值。
(2)如果Request i[j]≤Available[j],便转向步骤(3);否则,表示尚无足够资源,P i须等待。
银行家算法例子+答案

1、设系统中有3种类型的资源(A ,B ,C )和5个进程P1、P2、P3、P4、P5,A 资源的数量为17,B 资源的数量为5,C 资源的数量为20。
在T 0时刻系统状态见下表(T 0时刻系统状态表)所示。
系统采用银行家算法实施死锁避免策略。
(12分)T 0时刻系统状态表(1)T 0时刻是否为安全状态?若是,请给出安全序列。
(2)在T 0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?(4)在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?答:当前的系统状态描述为:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=4245241104635955C ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=413402504204212A ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=-011122600431743A C ()20517=R()332=V(1)在T0时刻,由于V (2,3,3)大于等于(C-A )中P5所在行的向量(1,1,0),因此V 能满足P5的运行,在P5运行后,系统的状态为:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=000402504204212A ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=-000122600431743A C ()745'=V 同样的,在P5运行后,V ’(5,4,7)也大于等于C-A 中P4所在的行(2,2,1),则能满足P4的运行。
P4运行后,系统的状态为:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=000000504204212A ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=-000000600431743A C ()1147'=V 按照上述同样的方法,P4运行后,P3,P2,P1也能按顺序运行。
(备注:考试时需要都写出来)。
因此,在T0时刻,存在安全序列:P5、P4、P3、P2、P1。
银行家算法

假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为9、8、5.在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示。
如果进程按照(___) 序列执行,那么系统状态是安全的。
A:P1 -> P2 -> P4 -> P5 -> P3B:P2 -> P1 -> P4 -> P5 -> P3C:P2 -> P4 -> P5 -> P1 -> P3D:P4 -> P2 -> P4 -> P1 -> P3答案:C下面我们就对这道题进行详细的解析,在考试中如果出现这样的题都是一个解题思路。
首先,我们根据上述图形绘制出每个进程中R1、R2、R3中剩余的资源数。
我用下面的表格图进行显示。
根据题意,我们知道现在 R1对应资源是9,R2对应资源是8,R3对应资源是5。
P1、P2、P3、P4、P5总用使用的资源是:7 7 5.剩余资源数是:2 1 0根据我们绘制的图表中发现,P1-P5中只有P2的剩余资源小于总的剩余资源数,所以选择P2。
根据4个选项,我们首先排除了A、D选项。
P2运行完成之后,会释放所占用的资源,此时总得剩余资源数是:4 2 1。
如何得到 4 2 1 这个数呢?总得剩余资源 + P2释放的资源数。
P2运行完成之后,需要从P1、P3、P4、P5中进行匹配。
根据剩余资源量我们可以看出,只有P4符合条件。
再看剩余的选项,此时,可以直接筛选出C选项符合。
如果是简单题,可以继续按照上述步骤进行操作,运行完一个进程,需要释放当前进程占用的资源,供下一个进程使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、设系统中有3种类型的资源(A , B , C )和5个进程P1、P
2、P3 P4 P5, A 资源的数量为
17, B 资源的数量为5, C 资源的数量为20。
在T o 时刻系统状 态见下表(T o 时刻系统状态表)所示。
系统米用银行家算法实施死锁避免策 略。
(12分)
T o 时刻系统状态表
T0时刻系统状态表
(1) T o 时刻是否为安全状态?若是,请给出安全序列。
(2) 在T o 时刻若进程P2请求资源(0, 3, 4),是否能实施资源分配?为 什么?
满足P5的运行,在P5运行后,系统的状态为:
2 1 2
3
4 7
4 o 2 1 3 4
A 4 o 5 C A o o 6 V' 5 4 7
2 o 4 2 2 1
o o o
o o o
同样的, 在 P5运行后,V ' (5, 4, 7)也大于等于 C-A 中P4所在的行(2, 2, 1),则能满
足P4的运行。
P4运行后,系统的状态为:
⑷
在(3) 的基; 础上, 若进程 P1 请求资源(o , 2, o ),是否能实施资源
分配?为什么 ,?
答: 当前 的系
统状态描述为:
5 5 9 2 1 2
3 4 7
5 3
6
4 o 2
1 3 4 C
4 o 11 A 4 o
5 C A o o 6
4 2
5 2 o 4
2 2 1
4 2 4
3 1 4
1 1 o
R 17 5 2o
V
2 3 3
(3)在(2)的基础上,若进程 分配?为什么?
P4请求资源(2, o , 1),是否能实施资源
(1)
在To 时刻,由于V (2, 3, 3)大于等于(C-A )中P5所在行的向量(1 , 1 ,。
),因此V 能
402 A 4 0 5 405 3 1
4 2 1 2 402
347 134
000
000
347 1 3 4 C A 0 0 6
020 4 2 4 3 1 4 110
2 1 2
3
4 7
4 0 2 1 3 4
A4 0 5C
A0 0 6 V'7 4 11 0 0 0 0 0 0 0 0 0
0 0 0
按照上述同样的方法,
P4运行后, P3,P2,P1 也能按顺序运行。
(备注:考试时需要都写出
来)。
因此,在 T0 时刻,存在安全序列: P5、P4、P3、P2、P1。
T0 时刻是安全的。
(2)
P2申请资源(0, 3, 4),但在C-A 中,P2所在行向量是(1, 3, 4)。
对于资源R1, P2 的申请
超过它所预定的需求。
因此,该申请不给予分配。
( 3)
A ) P4申请(2, 0, 1)不超过C-A 中P4所在行的向量(2, 2, 1 )。
B ) V (2, 3, 3)大于等于P4的申请(2, 0, 1)
C ) 对P4的申请(2, 0, 1)进行预分配,预分配后,系统的状态为:
2 1 2
3
4 7 134
C A 0 0 6
020
110
可用资源V (0, 3, 2)大于等于C-A 中P4所在的行(0, 2, 0),因此可以满足 P4的 运行。
P4运行后,
系统的状态为:
V'4 3 7
110
同样的方法(考试时需要列出) ,可计算出存在安全序列: P4,P5,P3,P2,P1。
因此,预分配后系统的状态是安全状态。
对于,P4请求资源(2, 0, 1),给予分配,分配后的系统新状态为:
5 5 9 2 1 2 5 3
6 4 0 2 C 4
011 A 4
0 5 4 2 5
4 0 5
R 17 5 20
(4)
进程P1 请求资源(0,2,0)
A)P1申请(0, 2, 0)不超过C-A中P1所在行的向量(3, 4, 7)。
B)V(0,3,2)大于等于P1 的申请(0,2,0)
0对P 1 的申请(0, 2, 0) 进行预分配, 预分配后,系统的状态为
2 3 2 3 2 7
4 0 2 1 3 4
A4 0 5C A 0 0 6V 012
4 0
5 0 2 0
3 1
4 1 1 0
V(0, 2, 1)不大于等于P1到P5任一进程在C-A中的向量,因此系统进行预分配后处于不安全状态。
对于P1申请资源(0,2,0),不给予分配。