计算机进程运行时必须使用某些不能共享的资源,在获取到所有必须资源之前,都不会释放已持有的资源,然而资源的总数是有限的,多个进程容易出现先持有部分资源、循环等待其他进程释放资源、进而导致所有进程都处于阻塞状态的情况,称之为死锁。
我们将资源种类从 1 到 m 编号,每种资源的未被持有数量为 ai 。
将进程从 1 到 n 编号,第 i 个进程已持有资源 hi 种,持有第 hrij 种资源 hcij 个,等待资源 wi 种,等待第 wrij 种资源 wcij 个。
当未被持有的资源数满足某个进程的等待资源数时,进程得以执行,执行完成后可释放所有已持有资源,被释放的资源变为未被持有状态。
计算机进程运行时必须使用某些不能共享的资源,在获取到所有必须资源之前,都不会释放已持有的资源;然而资源的总数是有限的,多个进程容易出现先持有部分资源、循环等待其他进程释放资源、进而导致所有进程都处于阻塞状态的情况,称之为死锁。
当某个进程的所有等待资源都可满足时,该进程即可执行并释放它已持有的所有资源,释放后这些资源数目加入全局的可用量中。若在按此策略反复执行所有可运行进程后,仍有进程等待资源,则这些剩余等待的进程即为死锁进程。