银行家算法(Banker's Algorithm)是用来避免死锁的一种算法,核心思路是:
-
查看当前系统的可用资源数;
-
遍历所有进程,看是否存在一个进程,它的**最大需求量-已分配量(即还需资源量)**小于等于可用资源数;
-
如果找到这样的进程:
-
假设把它需要的资源都满足,让它顺利执行结束并释放资源;
-
将释放的资源加回到可用资源中;
-
把这个进程加入安全序列;
-
-
重复这个过程,直到:
-
所有进程都能找到对应的资源顺利结束(找到一个完整的安全序列,系统安全);
-
或者某一步找不到可以执行的进程(系统进入不安全状态)。
-