死锁产生的原因和产生条件以及处理方法

死锁:
如果在一个进程 集合中的每个进程都在等待只能由该集合中的其他一个 进程才能引发的事件,则称一组进程或系统此时发生了死锁。
产生原因:
1.资源竞争:系统中共享资源数目难以满足进程需要,竞争不可抢占资源,竞争 可消耗资源。
2.进程推进顺序不当:请求和释放资源的顺序不当
产生条件(前三个条件为必要非充分条件):
1.互斥条件:进程对分配到的资源进行排他性使用。
2.请求和保持条件(部分分配条件):进程在等待一新资源时继续占有已分配的资 源。
3.不剥夺条件:不能强行剥夺进程拥有的资源。 4.循环等待条件(前三个条件同时存在产生的结果):存在“进程——资源”的环形链中的每一个进程已获得的资源同时被链中的下一个进程所请求。
处理方法:
1.预防死锁:通过设置某些限制条件,破坏产生死锁的四个必要条件中的一个或 几个条件,来防止死锁的发生。(破坏互斥条件;破坏请求和保持条件:一次性 申请全部资源,运行后不再申请其他资源;请求资源得不到满足:释放所获的的 所有资源;破坏环路条件:有序资源分配,同类资源一次申请完) 2.避免死锁:在资源的动态分配过程中,用某种方法去防止系统进入不安全状态, 从而避免死锁的发生。 3.检测死锁:允许系统在运行过程中发生死锁,但可设置检测机构及时检测死锁 的发生,并采取适当措施加以清除。 4.解除死锁当检测出死锁后,便采取适当措施将进程从死锁状态中解脱出来。

资源的个数满足以下条件(即系统不会产生死锁的最小资源数):
设系统所拥有 的资源总数为 M,共享该资源的进程数为 P,每个进程所需使用该资源的最大需 求为 N,则 M≥P(N-1)+1*

**死锁和安全状态:**如果一个系统在安全状态,就没有死锁。如果一个系统处于不 安全状态,就有可能死锁。

死锁## 死锁与安全状态## 操作系统## OS

你可能感兴趣的:(笔记)