死锁

来源:互联网 发布:机器人仿真软件下载 编辑:程序博客网 时间:2024/04/28 17:40

是指,在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它们现在保持着的资源,否则就不能向前推进.此时,每个进程都占用了一定的资源但是又不能向前推进,称这一组进程产生了死锁.
通俗的讲,就是两个或多个进程无止境的等候着永远不会成立的条件的一种系统状态.

进程是操作系统中的一个核心概念.其概念至今未有严格的公认的定义.一般的讲,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.

其基本状态有3种,即ready(就绪),running(运行),wait(等待).


产生死锁的根本原因是系统能够提供的资源个数比要求该资源的进程数少.其具体原因是
1系统资源不足
2进程推进顺序非法

1, 产生死锁的原因及必要条件是什么?
答:产生死锁的原因:一是系统提供的资源数量有限,不能满足每个进程的使用;二是多道程序运行时,进程推进顺序不合理。
产生死锁的必要条件是:1、互斥条件;2、不可剥夺条件(不可抢占);3、部分分配;4、循环等待。

2, 如何预防死锁?
答:根据产生死锁的四个必要条件,只要使其中之一不能成立,死锁就不会出现。为此,可以采取下列三种预防措施:
1、采用资源静态分配策略,破坏"部分分配"条件;
2、允许进程剥夺使用其他进程占有的资源,从而破坏"不可剥夺"条件;
3、采用资源有序分配法,破坏"环路"条件。

3, 如何避免死锁?
答:死锁的避免不严格地限制死锁的必要条件的存在,而是系统在系统运行过程中小心地避免死锁的最终发生。最著名的死锁避免算
法是银行家算法。死锁避免算法需要很大的系统开销。

4, 如何检测死锁?
答:解决死锁的另一条途径是死锁检测方法,这种方法对资源的分配不加限制,即允许死锁的发生。但系统定时地运行一个"死锁检
测"程序,判断系统是否已发生死锁,若检测到死锁发生则设法加以解除。

5, 如何解除死锁?
答:常常采用下面两种方法:
1、资源剥夺法;2、撤消进程法