银行家算法习题1

合集下载

银行家算法例题

银行家算法例题

在银行家算法中若出现下述资源分配情况:进程已分配资源需求资源可剩余资源P0 0 0 3 2 0 0 1 2 1 6 2 2P1 1 0 0 0 1 7 5 0P2 1 3 5 4 2 3 5 6P3 0 3 3 2 0 6 5 2P4 0 0 1 4 0 6 5 6问:1,该状态是否安全?2,若P2提出请求{1,2,2,2}后,系统能否将资源分配给它?四、回答题(22分)1.(4分)下列C程序说明系统调用fork()的应用。

请在①②③④处填入有关父、子进程的正确语句:/* Example to demonstrate the function of System Call fork */main(){int i;①if(i)>0{printf(“②”) ;}else{printf(“③”) ;}printf(“④”) ;}执行本程序时,子进程在标准输出上打印以下结果:It is child process.Exit.父进程在标准输出上打印以下结果:It is Parent process.Exit.2.(6分)设备驱动程序是什么?为什么要有设备驱动程序,用户进程怎样使用驱动程序? 3.(4分)一个由3个页面(页号为0、1、2),每页有2048个字节组成的程序,假定在某时刻调入8个物理块的内存,其页面的页号和物理块号的对照表如下:逻辑页号主存块号0 41 72 1请根据页表,计算下列给出的逻辑地址对应的绝对地址。

(1)100 (2)2617 (3)51964.(4分)文件的逻辑结构、物理组织及存取方法之间的关系如何?四、回答题(22分)1.答(4分)①while((I=fork())==-1);②It is parent process.\n③It is child process.\n④Exit.\n2.答:(6分)设备驱动进程(I/O进程,进程是并发环境下和谐的一次执行)与设备控制器之间的通信程序称为设备驱动程序。

银行家算法问题

银行家算法问题

银行家算法问题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)系统执行安全性算法,检查此次资源分配后系统是否处于安全状态。

(完整word版)银行家算法例题

(完整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等待。

操作系统之调度算法和死锁中的银行家算法习题答案

操作系统之调度算法和死锁中的银行家算法习题答案

1. 有三个批处理作业,第一个作业 10:00 到达,需要执行 2 小时;第二个作业在 10:10 到达,需要执行 1 小时;第三个作业在 10:25 到达,需要执行 25 分钟。

分别采用先来先服务,短作业优先和最高响应比优先三种调度算法,各自的平均周转时间是多少?解:先来先服务:(结束时间=上一个作业的结束时间+执行时间周转时间=结束时间-到达时间=等待时间+执行时间)按到达先后,执行顺序:1->2->3短作业优先:1)初始只有作业1,所以先执行作业1,结束时间是12:00,此时有作业2和3;2)作业3需要时间短,所以先执行;最高响应比优先:高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。

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)8:00只有作业1,所以执行作业1;2)9:00有作业2和3,作业3短,所以先执行3;3)9:12有作业2和4,作业4短,所以先执行4;高响应比优先:作业顺序: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。

银行家算法及例题

银行家算法及例题

银行家算法的主要思想是什么?他能够解决死锁问题吗?
银行家算法是避免死锁的一种方法,主要思想是:允许进程动态的申请资源,系统在每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后系统能按照某种顺序来为每个进程分配所需资源,直至最大需求,使个进程都可以顺利的完成),变将资源分配给进程,否则不分配资源,让进程等待。

银行家算法具有较好的理论意义但实际中很难实施,主要原因是:难以预测获得进程申请的最大资源,运行过程中进程的个数是不断变化的,所以银行家算法难以解决实际中的死锁问题。

例题:
若系统运行中出现如图所示的资源分配情况,该系统是否安全?如果进程P2此时申请资源(1,,2,2,2)系统能否把资源分配给他?为什么?
解答:首先检查是否存在安全序列
可先进性预分配,如果存在一个能够运行下去的寻列就说明是存在安全序列可以分配的。

预分配表如下:。

操作系统之调度算法和死锁中的银行家算法习题答案

操作系统之调度算法和死锁中的银行家算法习题答案

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。

银行家算法

1. 假定系统中有五个进程P0, P1, P2, P3, P4和三类资源A, B, C ,各种资源的数量分别为10、5、7,在t0时刻的资源分配情况如下表所示。

Max A P0 7 (2)P1发出请求向量Request1(1,0,2),系统能否将资源分配给它? (6分) 2. 某系统中有10台打印机,有三个进程P1,P2,P3分别需要8台,7台和4台。

若P1,P2,P3已申请到4台,2台和2台。

试问:按银行家算法能安全分配吗?如果能,请说明分配过程并给出一个安全序列,如不能,请说明理由。

(6分)3. 设系统中有三种类型的资源(A,B,C )和5个进程(P1,P2,P3,P4,P5),A 资源的数量为17,B 资源的数量为5,C 资源的数量为20。

在T0时刻系统状态如下表所示。

若系统采用银行家算法实施死锁避免策略,请问:(1) T0时刻是否为安全状态?若是在安全状态,请给出一个安全序列。

(2) 在T0时刻若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?4. 当前系统中出现如下所示的资源分配情况。

AllocationA利用银行家算法,试问:(1)该状态是否安全?(2)如果进程p2提出资源请求request(1,2,2,2)后,系统能否将资源分配给它?(8分)5. 某系统有A、B、C、D四类资源可供五个进程P1、P2、P3、P4、P5共享。

系统对这四类资源的拥有量为:A类3个、B类14个、C类12个、D类12个。

进程对资源的需求和分配情况如下:按银行家算法回答下列问题:(1)现在系统中的各类资源还剩余多少?(2)现在系统是否处于安全状态?为什么?(3)如果现在进程P2提出需要A类资源0个、B类资源4个、C类资源2个和D类资源0个,系统能否去满足它的请求?请说明原因。

(6分)。

银行家算法习题

假设一家银行拥有资金20**万,现有10家公司向其贷款进行筹建,每家均需300万才能建成。

如果这家银行将20**万的资金平均贷给这10家公司,则每家公司将得到200万的贷款,都不能筹建成功,也就不能还贷,那么这10家公司都将“死锁”。

若这家银行给其中的4家各贷300万,另4家各贷200万,这样将还有2家公司得不到贷款,不能开工建设,但有4家可筹建完成,这4家公司运营所得利润可向该银行还贷,银行可以利用还贷的资金继续向其他的公司贷款,从而保证所有公司筹建成功投入运营。

银行家算法是为了把一定数量的资金供多个用户周转,并保证资金的安全。

银行家算法可归纳为:(1)当一个用户对资金的最大需求量不超过银行家现有的资金时,就可接纳该用户。

(2)用户可以分期贷款,但贷款总数不能超过最大需求量。

(3)当银行家现有的资金不能满足用户的尚需贷款数时,可以推迟支付,但总能使用户在有限的时间里得到贷款。

(4)当用户得到所需的全部资金后,一定能在有限时间里归还所有的资金。

我们可以把操作系统看作银行家,把进程看作用户,把操作系统管理的资源看作银行家管理的资金,把进程向操作系统请求资源看作用户向银行家贷款。

操作系统按照银行家规定的规则为进程分配资源。

当进程首次申请资源时,要测试该进程对资源的最大需求量。

如果系统现存的资源可以满足它的最大需求量,则按当前的申请量分配资源,否则推后分配。

当进程在执行中继续申请资源时,先测试该进程已占有的资源数与本次申请的资源数之和是否超过该进程对资源的最大需求量。

如果超过,则拒绝分配资源,否则再测试系统现存的资源能否满足该进程尚需的最大资源量。

若能满足,则按当前的申请量分配资源,否则也要推迟分配。

这样做,能保证在任何时刻至少有一个进程可以得到所需要的全部资源而执行到结束,执行结束后归还资源,并把这些资源加入到系统的剩余资源中,用同样的方法为其他的进程分配资源。

银行家算法的数据结构包括:(1)可用资源向量Available。

操作系统之调度算法和死锁中的银行家算法习题答案

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=;作业3:等待时间=12:00-10:25=95m,响应比=1+95/25=;所以先执行作业32. 在一单道批处理系统中,一组作业的提交时刻和运行时间如下表所示。

试计算一下三种作业调度算法的平均周转时间T和平均带权周转时间Wo(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;高响应比优先:作业顺序: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=;作业4等待时间=9:30-9:06=24m,响应比=1+24/6=5;所以执行作业43.设系统中有3种类型的资源(A,B,C )和5个进程(P1,P2,P3,P4,P5),A资源的数量为17,B资源的数量为5,C资源的数量为20。

生产者消费者问题/银行家算法

操作系统课程设计题目一:实现生产者消费者问题题目二:银行家算法的实现一、实验题目解决生产者-消费者问题二、设计内容有界缓冲区内设有10个存储单元,放入/取出的数据项设定为1~10这10个整形数。

要求每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前指针位置和生产者/消费者标识符三、开发环境LINUX环境,工具为VI编辑器。

四、分析设计(一)实验原理使用的生产者和消费者模型具有如下特点:(1)本实验的多个缓冲区不是环形循环的,也不要求按顺序访问。

生产者可以把产品放到目前某一个空缓冲区中。

(2)消费者只消费指定生产者的产品。

(3)在测试用例文件中指定了所有的生产和消费的需求,只有当共享缓冲区的数据满足了所有关于它的消费需求后,此共享缓冲区才可以作为空闲空间允许新的生产者使用。

(4)本实验在为生产者分配缓冲区时各生产者间必须互斥,此后各个生产者的具体生产活动可以并发。

而消费者之间只有在对同一产品进行消费时才需要互斥,同时它们在消费过程结束时需要判断该消费对象是否已经消费完毕并清除该产品。

Windows 用来实现同步和互斥的实体。

在Windows 中,常见的同步对象有:信号量(Semaphore)、互斥量(Mutex)、临界段(CriticalSection)和事件(Event)等。

本程序中用到了前三个。

使用这些对象都分为三个步骤,一是创建或者初始化:接着请求该同步对象,随即进入临界区,这一步对应于互斥量的上锁;最后释放该同步对象,这对应于互斥量的解锁。

这些同步对象在一个线程中创建,在其他线程中都可以使用,从而实现同步互斥。

当然,在进程间使用这些同步对象实现同步的方法是类似的。

1.用锁操作原语实现互斥为解决进程互斥进人临界区的问题,可为每类临界区设置一把锁,该锁有打开和关闭两种状态,进程执行临界区程序的操作按下列步骤进行:①关锁。

先检查锁的状态,如为关闭状态,则等待其打开;如已打开了,则将其关闭,继续执行步骤②的操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

银行家算法流程
安全性算法流程图
银行家算法例题 1.假定系统中有4个进程1P ,2P ,3P ,4P , 3种类型的资源1R ,2R ,3R ,数量分别为9,3,6, 0T 时刻的资源分配情况如表2-1所示。

表2-1 T 0时刻的资源分配情况
试问:
(1) T 0时刻是否安全?
(2) T 0时刻以后,若进程P 2发出资源请求Request 2(1,0,1), 系统能否将资源分配给它? (3) 在进程P 2申请资源后,若P1发出资源请求Request 1(1,0,1), 系统能否将资源分配
给它?
(4) 在进程P 1申请资源后,若P3发出资源请求Request 3(0,0,1), 系统能否将资源分配
给它?
2. 在银行家算法中,出现以下资源分配情况(见表2-2)
系统剩余资源数量=(3,3,2)
(1) 该状态是否安全(给出详细的检查过程) (2) 如果进程依次有如下资源请求:
P1:资源请求request (1,0,2) P2:资源请求request (3,3,0) P3:资源请求request (0,1,0)
则系统该如何进行资源分配才能避免死锁?
3.设系统中有3种类型的资源(A、B、C)和5个进程P1、P2、P3、P4、P5,A资源的数量为17,B资源的数量为5,C资源的数量为20。

在T0时刻,系统状态见表2-3。

系统采用银行家算法实现死锁避免。

(1)T0时刻是否为安全状态?若是,请给出安全序列
(2)在T0时刻,若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?
(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?
(4)在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?
4.某系统有R1、R2、R3共三种资源,在T0时刻P1、P2、P3、P4这四个进程对资源的占用和需求情况见表2-24,此时系统的可用资源矢量为(2,1,2)。

试问:
1)将系统中各种资源总数和此刻各进程对各资源的需求数目用矢量或矩阵表示出来。

2)如果此时进程P1和进程P2均发出资源请求矢量Request(1,0,1),为了保证系统的安全性,应如何分配资源给这两个进程?说明所采用策略的原因。

3)如果2)中两个请求立即得到满足后,系统此刻是否处于死锁状态?
5.考虑某个系统在表2-25时刻的状态
使用银行家算法回答下面的问题:
1)Need矩阵是怎样的?
2)系统是否处于安全状态?如安全,请给出一个安全序列
3)如果从进程P1发来一个请求(0,4,2,0),这个请求能否立刻被满足?若安全,请给出一个安全序列。

6. 假设具有5个进程的集合P={P0,P1,P2,P3,P4},系统中有三类资源A、B、C假设在某时刻有如下状态:
Allocation Max Available
A B C A B C A B C
P0 0 0 3 0 0 4 1 4 0
P1 1 0 0 1 7 5
P2 1 3 5 2 3 5
P3 0 0 2 0 6 4
P4 0 0 1 0 6 5
请问当前系统是否处于安全状态?如果系统中的可利用资源Available为(0,6,2),系统是否安全?如果系统处在安全状态,请给出安全序列;如果系统处在非安全状态,请简要说明原因。

相关文档
最新文档