死锁:
两个以上的进程互相都要求对方已经占有的资源,导致无法继续继续执行下去的现象。
死锁产生的条件:
环路等待,互斥,保持和等待,不剥夺。
打破死锁的的条件:
死锁预防,死锁避免,死锁检测,死锁解除。
考点为死锁避免重的银行家算法:
银行家算法:
- 对于进程发出的每一个系统可以满足的资源请求命令加以检测,如果发现分配资源后系统进入不安全状态,则不予分配。
- 若分配资源后系统仍处于安全状态,则实施分配。
- 与死锁预防相比,提高了资源利用率,但检测分配后系统是否安全增加了系统开销。
此题的结题思路为:
先找到各资源未被分配的数量,看看哪个进程的需求量满足就可以执行该进程,进程执行完会将该进程的已分配资源数释放,累加到之前未分配的数量上,继续看哪个进程满足,依次执行。