学习笔记——OS进程死锁

一、死锁概念及原因

    1.死锁例子:进程1请求刻录机成功,进程2请求扫描仪成功;进程1又请求扫描仪,进程2又请求刻录机,造成死锁。

    2.何谓死锁:指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。

                         每个进程所等待的事件都是该组中其它进程所占有的资源。

    3.死锁产生原因:

                  1)系统资源竞争:竞争不可剥夺资源,如打印机、磁带机等。

                  2)进程推进顺序非法:P1保持资源R1,P2保持资源R2,;P1请求R2,P2请求R1。

    4.产生死锁的必要条件:只要有一个不成立,则不构成死锁

                  1)互斥条件:排他性使用资源,即一段时间内,某资源只能被一个进程占用;其他进程申请,只能等待。

                  2)请求和保持条件:进程已保持了至少一个资源,又请求其它的资源,但已其它进程占有,该进程则被阻塞,继续保

                                        持已有的资源

                  3)不可抢占条件:进程未使用完该资源,不可被其它进程剥夺

                  4)循环等待条件:存在一组进程资源的循环等待链,链中Pi请求的资源被Pi+1所满足。

    注意区分:请求和保持条件与不可抢占条件

                      请求和保持条件:你有一个甜苹果,还想要一个红苹果

                      不可抢占条件:你有一个苹果,不可被他人吃

                      

     5.构成圈系统,但又不构成死锁的原因是同类资源数目大于1。

二、死锁的处理策略

1.预防死锁:通过设置某些限制,破坏产生死锁的四个必要条件

2.避免死锁:在资源的动态分配过程中,避免系统进入不安全状态

4.检测及解除死锁:允许发生死锁,可检测出并进行解除。常用方法:撤销一些进程,回收资源,分配给阻塞进程

三、死锁预防

1.破坏互斥条件:要求所有资源都能共享使用,但不可能,如一台打印机
2.破坏请求和保持条件:一次分配所有所需资源,即资源未被需要时就投入运行。该资源可能最后时间段才使用

                                       严重浪费资源,有可能导致“饥饿”现象。(把你想要的所有苹果都给你)

3.破坏不可抢占条件:某进程已暂有的资源可以被剥夺。意味着该进程之前的工作作废,增加系统开销。

                                    仅适用于易于保护与恢复的资源,如CPU寄存器及内存资源,不适用于打印机等资源。

4.破坏循环等待条件:顺序资源分配法。给系统资源编号,规定每个进程,按编号递增顺序请求资源,且一次分配。

四、死锁避免

在资源分配过程中,防止系统进入不安全状态。即系统进行资源分配之前,先计算此次资源分配的安全性。

安全状态:系统按某种进程推进顺序,为每个进程分配资源,直到达到每个进程对资源的最大需求,每个进程都能顺利完成。

并非所有不安全状态都是死锁状态;但进入不安全状态,就有可能发生死锁。

利用银行家算法避免死锁,思想:

          当进程首次申请资源时,要测试该进程对资源的最大需求量,若系统现存的资源可满足它的最大需求量则按照当前的申请量分配资源,否则就推迟分配。

          当进程在执行过程中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源数能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。

           简单来说,工作原理:在每次进行资源分配时,首先检查系统是否有足够的资源满足需求,若有,则先进行分配,并对分配后的新状态进行安全性检查。如果新状态安全,则正式分配上述资源,否则拒绝分配上诉资源。

五、死锁检测和解除

死锁检测算法和死锁解除算法

1.死锁检测

保持有关资源分配的信息;检测是否进入死锁状态带的算法

1)资源分配图,描述系统死锁:

      

      圆圈P1和P2表示进程;方框R1和R2表示资源;方框内的小圆圈表示资源数目

      R指向P表示P进程已获得R资源;P指向R表示P要求R资源。

      如图:两个箭头从R1指向P1;一个剪头从P1指向R2:P1已获得两个R1资源;P1请求一个R2

2)死锁定理

      选择一个即非阻塞又不孤立的进程Pi(如P1),分配需要的资源,顺利进行下去,运行完毕,释放资源;Pj相同操作,直到找不到这样的P。若所有P都已孤立,则该图为可完全简化的;否则,为不可完全简化的。

      

      死锁状态的充分条件:当且仅当资源分配图为不可简化的。即死锁定理。

2.死锁解除

1)资源剥夺法:挂起某些死锁进程,剥夺它们的资源,分配给其它进程。但应防止挂起的进程“饥饿”。

2)撤销进程法:强制撤销进程。

3)进程回退法:某些进程回退到不足以产生死锁的状态,保存该些进程的历史信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值