死锁
1、定义
- 在许多应用中进程需要以独占的方式访问资源,当操作系统允许多个进程并发执行时可能会出现进程永远被阻塞现象,如两个进程分别等待对方所占的资源,于是两者都不能执行而处于永远等待状态,此现象称为死锁。
- 如果一个进程集合中的每个进程都在等待只能由此集合中的其他进程才能引发的事件,而无限期陷入僵持的局面称为死锁。
2、死锁发生的四个条件
死锁只有同时满足以下四个条件才会发生
(1)互斥条件
- 临界资源是独占资源,进程应互斥且排他的使用这些资源。
(2) 持有并等待条件
- 进程在请求资源得不到满足而等待时,不释放已占有资源。
(3)不可剥夺条件
- 又称不可抢占,已获资源只能由进程自愿释放,不允许被其他进程剥夺。
(4) 环路等待条件
- 存在循环等待链。其中,每个进程都在等待链中等待下一个进程所持有的资源,造成这组进程处于永远等待状态。