死锁

✍ dations ◷ 2025-12-07 22:58:34 #操作系统技术,协同控制,程式错误

死锁(英语:Deadlock),又译为死结,计算机科学名词。当两个以上的运算单元,双方都在等待对方停止运行,以获取系统资源,但是没有一方提前退出时,就称为死锁。在多任务操作系统中,操作系统为了协调不同行程,能否获取系统资源时,为了让系统运作,必须要解决这个问题。

这里指的是进程死锁,是个计算机技术名词。它是操作系统或软件运行的一种状态:在多任务系统下,当一个或多个进程等待系统资源,而资源又被进程本身或其他进程占用时,就形成了死锁。有个变种叫活锁。

例如,一个进程 p1占用了显示器,同时又必须使用打印机,而打印机被进程p2占用,p2又必须使用显示器,这样就形成了死锁。因为p1必须等待p2发布打印机才能够完成工作并发布屏幕,同时p2也必须等待p1发布显示器才能完成工作并发布打印机,形成循环等待的死锁。

如果系统中只有一个进程,当然不会产生死锁。如果每个进程仅需求一种系统资源,也不会产生死锁。不过这只是理想状态,在现实中是可遇不可求的。

死锁的四个条件是:

死锁只有在四个条件同时满足时发生,预防死锁必须至少破坏其中一项。

我们也可以尝试回避死锁。因为在理论上,死锁总是可能产生的,所以操作系统尝试监视所有进程,使其没有死锁。

最简单的消除死锁的办法是重启系统。更好的办法是终止一个进程的运行。

同样也可以把一个或多个进程回滚到先前的某个状态。如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致资源匮乏(英语:Starvation (computer science))。

活锁(Livelock),与死锁相似,死锁是行程都在等待对方先释放资源;活锁则是行程彼此释放资源又同时占用对方释放的资源,当此情况持续发生时,尽管资源的状态不断改变,但每个行程都无法获取所需资源,使得事情没有任何进展。

假设两人正好面对面碰上对方:

相关

  • Netscape Navigator 9Netscape Navigator 9是网景导航者浏览器最后的版本,由美国在线旗下的网景制作。自2004年将第8版的Netscape Browser委交Mercurial Communications制作以来,第一个重回网景制
  • 联合分布在概率论中, 对两个随机变量X和Y,其联合分布是同时对于X和Y的概率分布.对离散随机变量而言,联合分布概率质量函数为Pr(X = x & Y = y),即因为是概率分布函数,所以必须有类
  • 质能等价E = mc²(即质能等价,亦称为质能转换公式、质能方程)是一种阐述能量(E)与质量(m)间相互关系的理论物理学公式,公式中的 c 是物理学中代表光速的常数。该公式表明物体相对于一个参照
  • 台地台地(英语:Plateau、table land)是一种凸起的面积较大且海拔较低的平面地形。台地中央的坡度平缓,四周较陡,直立于周围的低地丘陵。有人认为台地是高原的一种。但一般而言,海拔较
  • MSAMSA可能指:
  • 硬式摇滚硬式摇滚(英语:hard rock)也称为硬摇滚,或称为重摇滚(英语:heavy rock),是一种摇滚乐流派,最早发源于1960年代中期的车库摇滚与迷幻摇滚,比以往的摇滚乐更为猛烈。硬式摇滚主要使用大
  • 直过民族直过民族,指的是中华人民共和国成立后,在政府支持下,从原始社会或奴隶社会直接过渡到社会主义社会的几个少数民族的总称,包括了独龙族、德昂族、基诺族、怒族、布朗族、景颇族、
  • 皮斯基尤赫山坐标:13°42′07″S 70°59′17″W / 13.70194°S 70.98806°W / -13.70194; -70.98806皮斯基尤赫山(Pisquioc),是秘鲁的山峰,位于该国东南部库斯科大区,由基斯皮坎奇省的马尔卡帕
  • JNodeJNode (Java New Operating System Design Effort) 是一个开源项目以创建一个Java平台的操作系统。项目目标独特,即用java本身创建所有的软件,仅有的例外是引导与加载系统时采
  • 阿塔纳斯·卡波夫阿塔纳斯·卡波夫(保加利亚语:Атанас Кабов,英语:Atanas Kabov,1999年4月11日-),是一名保加利亚男子足球运动员,从索菲亚列夫斯基足球俱乐部租借,担任维托沙比斯特里察边锋