银行家算法

137 阅读1分钟

银行家算法(Banker's Algorithm)是用来避免死锁的一种算法,核心思路是:

  1. 查看当前系统的可用资源数

  2. 遍历所有进程,看是否存在一个进程,它的**最大需求量-已分配量(即还需资源量)**小于等于可用资源数;

  3. 如果找到这样的进程:

    • 假设把它需要的资源都满足,让它顺利执行结束并释放资源;

    • 将释放的资源加回到可用资源中;

    • 把这个进程加入安全序列

  4. 重复这个过程,直到:

    • 所有进程都能找到对应的资源顺利结束(找到一个完整的安全序列,系统安全);

    • 或者某一步找不到可以执行的进程(系统进入不安全状态)。