银行家算法
2017-04-02 20:11:53 0 举报
银行家算法是一种避免死锁的著名算法,它是由艾兹格·迪杰斯特拉提出的。该算法主要应用于多道程序系统中,防止多个进程因竞争资源而无限期地相互等待。算法实现的基本思想是:当一个进程请求新的资源而得不到时,它必须释放已经持有的资源以让其他进程使用。如果所有进程都遵循这个原则,系统就能避免进入死锁状态。银行家算法要求每个进程在开始执行前声明所需的最大资源数,并在运行过程中动态调整已分配的资源数。通过不断检测系统是否处于安全状态,来确保所有进程都能顺利完成。
作者其他创作
大纲/内容
是否再进行分配
安全性算法
work+=ALLOCATION[i]FINISH=true
NEED[i]=work[i]
false
银行家算法开始
work=AVALLABLEFINISH=false
true
所有FINISH=true
ERROR
提出请求REQUEST[i]
同意请求
安全
不安全
REQUEST[i]=NEED[i]
REQUEST[i]=AVALLABLE[i]
安全性算法结束
FINISH=false
AVALLABLE[i]-=REQUEST[i]ALLOCATION+=REQUEST[i]
退出银行家算法
0 条评论
下一页