【精选】3.5 死锁课件.pptVIP

  • 3
  • 0
  • 约6.36千字
  • 约 62页
  • 2019-07-10 发布于湖北
  • 举报
(3)假设系统分配了资源,则有: Available:=Available-Request[i]; Allocation[i]:= Allocation[i]+Request[i]; Need[i]:=Need[i]-Request[i] 若系统新状态是安全的,则分配完成 若系统新状态是不安全的,则恢复原状态,进程等待 *银行家算法的安全性检查 为进行安全性检查,定义数据结构: Work:ARRAY[1..m] of integer; //它表示系统可提供给进程继续运行所需的各类资源数目,它含有m个元素,在执行安全算法开始时,Work∶=Available; Finish:ARRAY[1..n] of Boolean;//它表示系统是否有足够的资源分配给进程,使之运行完成。开始时先做Finish[i]∶=false; 当有足够资源分配给进程时, 再令Finish[i]∶=true。 银行家算法 安全性检查的步骤: (1) Work:=Available; Finish:=false; (2) 寻找满足条件的i: a.Finish[i]=false; b.Need[i]≤Work; (寻找没有完成的进程,同时其所需要的资源数比系统能够提供的资源少) 如果不存在,则转(4) 银行家算法 (3) Work:=Work+Allocation[i];

文档评论(0)

1亿VIP精品文档

相关文档