现代操作系统——死锁

1.资源

概念:在进程对设备、文件等取得了排他性访问权时,有可能会出现死锁。我们把这里需要排他性使用的对象称为资源。资源分为可抢占和不可抢占。
可抢占资源:可以从拥有它的资源的进程中抢占而不会出现副作用。抢占资源可能会产生潜在死锁,但是是可以重新分配资源化解死锁。
不可抢占资源:无法从它占有的进程中抢占过来,这会导致死锁的发生。
使用一个资源的过程:请求-》使用-》释放,当进程请求失败时,会进入休眠状态,直到请求成功。
死锁:当进程A请求一个资源1时,该资源被进程B使用,同时进程B请求使用资源2时,资源2被进程A使用,导致两个进程一直等待的现象称为资源死锁。也是常见的。

2.死锁

概念:如果一个进程集合中的每个进程都在等待只能有该进程集合中的其他进程才能引发的事件,那么该进程集合就是死锁的。
资源死锁的条件:互斥、占有和等待条件、不可抢占条件、环路等待条件
解决死锁问题:1.忽略(鸵鸟算法)2.死锁检测和恢复3.死锁避免4.死锁预防
死锁检测和恢复:一个资源的死锁检测:对系统构建资源分配图,利用深度搜索每个节点,判断是否有环出现。
死锁恢复:1.利用抢占恢复2.利用回滚恢复3.杀死进程恢复
死锁避免:资源轨迹图,安全状态和不安全状态,从安全状态出发,系统能保证所有进程完成,从不安全状态出发,就不一定了。
银行家算法:对每一个请求进行检查,检查如果满足这一请求是否会达到安全状态,如是,满足,不是,推迟。安全状态的查看:银行家看他是否满足某一客户的最大限额,如果能,则投资,不能,不投资,依次类推,如果所有的投资能够收回,则认为是安全状态。
死锁预防:破坏互斥条件,破坏占有和等待条件,破坏不可占有条件,破坏环路等待条件。

3.其他问题

1.两阶段加锁:在第一阶段对所有记录加锁,加锁成功,则进行第二阶段,直到完成后释放锁。
2.通信死锁
3.活锁:一直处于轮询状态,不断询问,并没有挂起进程。
4.饥饿:一直请求,一直推迟。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值