因为操作系统实验要写 所以写了
在避免死锁的方法中,允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,令进程等待。 虽然并非所有的不安全状态都必然会转为死锁状态,但当系统进入不安全状态后,便有可能进而进入死锁状态;反之,只要系统处于安全状态,系统便可避免进入死锁状态。 因此,避免死锁的实质在于:系统在进行资源分配时,如何使系统不进入不安全状态。
这个算法中, 主要是维护其中的
available
向量
max
矩阵
allocation
矩阵
每一次分配, 都会轮询一遍可分配矩阵, 寻求可以分配的process, 如果没有可以分配的process, 则跳出循环进行是否进入死锁的判断.
具体维基百科讲的其实比我好
下面两张图一张是源码 一张是结果
其中数据来源于文件 可以方便自定义
具体可以见我的GitHub仓库
本文作者:xmmmmmovo
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 许可协议。转载请注明出处!