什么是死锁,死锁和安全状态的关系?

如题所述

死锁与安全状态的关系是:死锁状态一定是不安全状态。

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

计算机系统中,如果系统的资源分配策略不当,更常见的可能是程序员写的程序有错误等,则会导致进程因竞争资源不当而产生死锁的现象。

一般来说,处理死锁问题有三种方法:通过协议来预防或避免死锁,确保系统不会进入死锁状态。可以允许系统进入死锁状态,然后检测它,并加以恢复。可以忽视这个问题,认为死锁不可能在系统内发生。

安全状态是计算机操作系统里的一个概念。在避免死锁的方法中,允许进程动态地申请资源,系统在进行资源分配之前,先计算资源分配的安全性。若此次分配不会导致系统进入不安全状态,则将资源分配给进程;否则,进程等待。

所谓安全状态是指系统能按某种顺序如<P1,P2,...,Pn>(称<P1,P2,...Pn>序列为安全序列),来为每个进程分配其所需资源,直到最大需求,使每个进程都可顺序完成。若系统不存在这样一个安全序列,则称系统处于不安全状态。

虽然并非所有不安全状态都是死锁状态,但当系统进入不安全状态后,便可能进而进入死锁状态;反之,只要系统处于安全状态,系统便可避免进入死锁状态。如果不按照安全顺序分配资源,则系统可能由安全状态进入不安全状态。

温馨提示:答案为网友推荐,仅供参考
相似回答