面试中死锁的考点总结(死锁的定义、产生原因、四个必要条件、如何预防)

死锁

死锁定义:死锁指多个进程因竞争资源而造成的一种互相等待的僵局,若无外力作用,这些进程都无法向前推进,就造成了死锁。

产生原因:1、竞争资源 2、进程请求和释放资源的顺序不当,导致死锁

死锁产生的必要条件
1、互斥条件:一个资源同一时间只能被一个进程访问,若其他进程请求该资源,则只能等待
在这里插入图片描述

2、不可剥夺条件:进程获得资源在未使用完之前,不能被其他进程强行夺走,只能由获得该资源的进程来释放
在这里插入图片描述

3、请求与保持条件:进程已经保持了至少一个资源,但是又提出了新的资源请求,如果新资源已被占有,这只能进行等待,但对自己以占有的资源保持不释放
在这里插入图片描述

4、循环等待条件:若干个进程间形成了收尾相接循环等待资源的情况
在这里插入图片描述

死锁的预防----破坏死锁产生的必要条件从而预防死锁(主要是避免3和4两个条件的产生)
1、破坏互斥条件:把只能互斥使用的资源改成允许共享使用的资源,例如spooLing技术,将独占设备在逻辑上改造成共享设备
2、破坏不可剥夺条件:当某个进程请求新资源无法得到满足时,就立即释放保持的所有资源,待以后需要再重新申请
3、破坏请求和保持条件:非阻塞加锁,加不上锁则释放已有的锁。采用静态分配方法,即进程在运行前一次申请完它所需要的的资源,在它资源未满足前,不让他运行,一旦运行,这些资源都归它所有,此时不会在请求其他资源
4、破坏循环等待条件:保证加锁解锁顺序一致。采用顺序资源分配法,首先给系统中的资源进行编号,规定进程必须按编号递增的顺序请求资源。例如一个进程只有已占有小编号资源时,才可以申请更大编号的资源

避免死锁经典算法:银行家算法,死锁检测算法

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WhiteShirtI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值