当系统中每类资源存在多个实例时,如何检测死锁并选择恢复方案
简答题困难744 次浏览
参考答案与解析
# 核心结论
当每类资源只有一个实例时,等待图中的环可以用于判定死锁;当每类资源存在多个实例时,图中出现环通常不能直接证明死锁,因为某个进程完成后释放的实例可能让环内其他进程继续运行。此时应基于一致快照,综合当前可用资源向量、各进程已分配资源矩阵和当前尚未满足的请求矩阵,模拟哪些进程能够完成并归还资源。模拟结束后仍无法完成的进程,才属于该快照下的死锁集合。
# 底层机制
设Available表示每类资源当前可用实例数,Allocation[i]表示进程i已经持有的资源,Request[i]表示它当前继续执行所等待的资源。检测开始时令Work = Available,并为各进程设置完成标志。反复寻找尚
