【软考】死锁

目录

一、基本概念
  • 1.死锁是指两个以上的进程互相都要使用对方已占有的资源,导致资源无法继续运行下去的现象。
  • 2.例如:吃饭需要使用2根筷子,张三有一根筷子,李四也有一根筷子,张三对李四说让李四的筷子给张三,张三吃完后再给李四,李四也是这么说的,然后双方一直僵持,导致都没吃上饭
二、死锁的条件
  • 1.死锁的四个必要条件为:互斥条件,保持和等待条件,不可剥夺条件,环路等待条件,四个条件缺一不可,同时满足才能形成死锁
  • 2.互斥条件:一个资源每次只能被一个进程使用,如果资源是共享的,所有进程都可以使用,就不会产生死锁的现象。一根筷子要么被张三使用,要么被李四使用
  • 3.保持和等待条件:一个进程因请求其它资源被阻塞时,也不释放已获得的资源。保持自己持有的资源,等待他人释放资源。张三持有一根筷子,等待李四给筷子;李四持有一根筷子,等待张三给筷子
  • 4.不剥夺条件:有些系统资源是不可剥夺的,当进程已获得不可剥夺的资源,系统不能强行收回,只能等进程完成时自己释放。张三还差一根筷子,不能强行抢李四的筷子,必须得等李四主动给才行
  • 5.环路等待条件:若干个进程形成资源申请环路,每个都占用对方要申请下一个资源。张三要李四的筷子,李四要张三的筷子,形成环状;若王五也有一根筷子给了张三,则破坏了环状,可以破除死
三、解决死锁
3.1 预防死锁
  • 1.破坏导致死锁的4个必要条件之一就可以预防死锁,属于事前检查
  • 2.预先静态分配法:用户申请资源时,申请所需的全部资源,破坏保持和等待条件,不需要等待其它进程释放的资源。一次性给张三2根筷子,吃完后释放掉2根筷子,然后一次性给李四2根筷子
  • 3.资源有序分配法:将资源分层排序,保证不形成环路,得到上一层资源后,才能够申请下一层资源。给筷子加上编号,1号筷子和2号筷子,首先给张三分配1号筷子,李四等待,然后给张三分配2号筷子,张三吃完后,释放1号筷子,分配1号筷子给李四,张三释放2号筷子,分配2号筷子给李四
3.2 避免死锁
  • 1.避免是指进程在每次申请资源时判断这些操作是否安全,属于事前检查
  • 2.银行家算法:对进程发出的资源请求进行检测,如果发现分配资源后系统进入不安全状态,则不予分配,否则分配。安全但会增加系统的开销
3.3 检测死锁
  • 1.使用死锁检测方法,此方法对资源的分配不加限制,允许死锁产生。但系统定时运行一个死锁检测程序,如果检测到死锁则去解除
3.4 解除死锁
  • 1.资源剥夺法:从一些进程那强行剥夺足够数量的资源分配给死锁进程
  • 2.撤销进程法:根据某种策略逐个地撤销死锁进程,直到解除死锁为止
四、进程管理
  • 1.进程管理是操作系统的核心,设计不当会出现死锁问题。
  • 2.如果进程在等待一件不可能发生的事,进程就死锁了
  • 3.如果多个进程产生死锁,就会造成系统死锁
  • 4.系统不可能发生死锁的最小资源数:(w-1)*m+1<=n
  • 5.每个进程都需要w个资源,一共m个进程,在极端情况下,每个进程都分配到了w-1个资源,所以都无法完成任务,则会死锁,再给其中任意一个进程分配1个资源,那么该进程拿到了w个资源,则可以完成任务,释放掉资源后,其它进程也可以依次拿到w个资源完成任务
五、最小资源数计算
5.1 例题1
  • 1.系统有5个进程:A、B、C、D、E。这5个进程都需要4个系统资源。如果系统至少有多少个资源,则不可能发生死锁。

  • 2.一定死锁的情况:某个进程分配了3个资源,其它进程均没有分配到资源。极端情况下,所有资源都给一个进程,对于A,需要4块钱才能办事,给A零到三块钱,都不会办事的。因此资源小于4时,一定会发生死锁。

  • 3.可能正常执行的情况:极端情况下,4个资源都分配给同一个进程,即

  • 4.可能死锁的情况,极端情况下,15个资源平均分配给5个进程,即每个进程分配到3个资源,即

  • 5.因此资源数在4到15个时,可能死锁,可能正常执行

  • 6.当资源数大于15时,必定不会死锁,即

  • 7.假设第16号资源给到进程B,进程B得到资源后,运行完,释放了4个资源,再将释放资源分配其它任意进程,其它进程均可完成任务,释放所持有的资源

  • 8.因此资源数大于15时,必定不会死锁

相关推荐
要开心吖ZSH13 小时前
软件设计师备考-(十六)数据结构及算法应用(重要)
java·数据结构·算法·软考·软件设计师
一叶飘零_sweeeet1 天前
备战 2025 软考系统架构师
系统架构·软考·系统架构师
要开心吖ZSH3 天前
软件设计师备考-(十四)数据库设计
java·数据库·软考·软件设计师
CodingSir聊软考7 天前
【系规伴学】云资源规划核心知识点解析
软考
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之网关协议深度剖析
网络工程师·软考·网关协议·中级
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之 STP 协议,网络的 “交通协管员”
网络工程师·软考·中级·stp协议
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之 RIP 协议
网络工程师·软考·rip协议·中级
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之级联
网络工程师·软考·级联·中级
奔跑吧邓邓子1 个月前
【软考中级网络工程师】知识点之堆叠
网络工程师·软考·中级
moton20172 个月前
【软件系统架构】系列七:系统性能——路由器性能深入解析
系统架构·路由器·软考·吞吐量·软件系统架构·并发连接数·转发延迟