下载此文档

【计算机专业】操作系统 银行家算法详解.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
银行家算法开放分类:算法银行家算法是一种最有代表性的避免死锁的算法。要解释银行家算法,必须先解释操作系统安全状态和不安全状态。安全状态:如果存在一个由系统中所有进程构成的安全序列P1,…,Pn,则系统处于安全状态。安全状态一定是没有死锁发生。不安全状态:不存在一个安全序列。不安全状态一定导致死锁。那么什么是安全序列呢?安全序列:一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj(j<i)当前占有资源量之和。银行家算法:我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。算法:n:系统中进程的总数m:资源类总数Available:ARRAY[1..m]ofinteger;Max:ARRAY[1..n,1..m]ofinteger;Allocation:ARRAY[1..n,1..m]ofinteger;Need:ARRAY[1..n,1..m]ofinteger;Request:ARRAY[1..n,1..m]ofinteger;简记符号:AvailableMaxAllocationNeedRequest当进程pi提出资源申请时,系统执行下列步骤:(1)若Request≤Need,转(2);否则错误返回(2)若Request≤Available,转(3);否则进程等待(3)假设系统分配了资源,则有:Available:=Available-Request;Allocation:=Allocation+Request;Need:=Need-Request若系统新状态是安全的,则分配完成若系统新状态是不安全的,则恢复原状态,进程等待为进行安全性检查,定义数据结构:Work:ARRAY[1..m]ofinteger;Finish:ARRAY[1..n]ofBoolean;安全性检查的步骤:(1)Work:=Available;Finish:=false;(2)寻找满足条件的i:=false;≤Work;如果不存在,则转(4)(3)Work:=Work+Allocation;Finish:=true;转(2)(4)若对所有i,Finish=true,则系统处于安全状态,否则处于不安全状态/*银行家算法,操作系统概念(OSconceptsSixEdition)作者:ctu_85*/#include""#include""#definealloclensizeof(structallocation)#definemaxlensizeof(structmax)#defineavalensizeof(structavailable)

【计算机专业】操作系统 银行家算法详解 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人cjc201601
  • 文件大小23 KB
  • 时间2020-08-11
最近更新