2、死锁
大约 3 分钟操作系统死锁原创面试题技术解析程序员资源管理
🌟死锁
死锁产生的条件
请求和保持
:请求新资源的同时,保持住已的占有资源不松手互斥
:某一时刻下,一个资源只能一个进程所占有不可剥夺
:获得的资源没有使用完时,别人不可以抢走循环等待
:没有获得新资源,绝不死心。
处理死锁的方法
鸵鸟法
:对死锁不管不问预防死锁
:设置某些限制条件,破坏死锁产生的四个条件之一避免死锁
:资源分配的动态过程中,用某种方法防止系统进入不安全状态,从而避免死锁的发生。检测死锁
:专门喊个人来检测死锁是否存在。
死锁预防
破坏四个条件之一:
互斥条件
:不太可能通过这个来解决请求和保持
:静态分配,进程运行之前先分配所有资源给他不可剥夺
:当某个资源长时间不能获得需要的新资源时,则放弃他的所有资源循环等待
:当等待一段时间还没有获得资源时,则放弃等待
死锁的检测和解除
死锁检测
:可以通过资源分配图来检测进程的资源占用情况及申请情况,进而来判断是否产生了死锁。如果资源分配图构成了环,则表示有死锁。
死锁解除
:可以通过 剥夺资源
、进程撤销
等方式来解除死锁。
死锁产生的条件
序号 | 条件名称 | 描述说明 |
1 | 请求和保持 | 进程在请求新资源的同时,不释放已占有的资源 |
2 | 互斥 | 资源不能共享,某一时刻只能被一个进程占用 |
3 | 不可剥夺 | 资源只能由占有它的进程主动释放,不能被强制剥夺 |
4 | 循环等待 | 存在一个进程链,每个进程都在等待下一个进程所持有的资源 |
处理死锁的方法
方法名称 | 描述说明 |
鸵鸟法 | 忽略死锁问题,认为其发生概率极低,系统不做任何处理 |
预防死锁 | 破坏死锁产生的四个必要条件之一,防止死锁发生 |
避免死锁 | 在资源动态分配过程中,通过算法确保系统始终处于安全状态,避免进入死锁状态 |
检测死锁 | 定期运行检测算法,检查系统中是否存在死锁,若存在则采取措施解除 |
