死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 斯宾塞斯潘塞可以指:
  • 1,3-丁二醇1,3-丁二醇,分子式C4H10O2。无色粘稠液体,略有苦甜味,吸湿性强。溶于水、乙醇、丙酮、丁酮、蓖麻油、邻苯二甲酸二丁酯,几乎不溶于苯、甲苯、四氯化碳、乙醇胺类、脂肪烃、矿物
  • 恐龙的体型恐龙的体型将目前已知的不同恐龙生物群中,最大、最重与最小的成员列表出来。备注:这个列表并不包含未公布的化石。恐龙的体重估计值比身长估计值变化范围更大,因为使用已灭绝动
  • 隐菌寄生菌纲Colacosiphon 隐团菌属(Cryptomycocolax)隐团菌纲(学名:Cryptomycocolacomycetes)是担子菌门柄锈菌亚门下的一个纲。该纲仅含一个目与一个科,即隐团菌目(学名:Cryptomycocolacales)与
  • 沉默螺旋沉默的螺旋(英语:spiral of silence)是一个政治学和大众传播理论,由伊丽莎白·诺尔-纽曼于1974年在发表于《传播学刊(英语:Journal of Communication)》(Journal of Communication)
  • 阿洛群岛阿洛群岛是印度尼西亚的群岛,位于小巽他群岛的东端,由东努沙登加拉省所管辖,下分158个村落,2008年估计人口180487。阿洛群岛以东是分隔韦塔岛和阿陶罗岛的翁拜海峡,南面是帝汶岛
  • 褐獴(H. fuscus)褐獴(学名 Herpestes fuscus) 是产于印度的一种獴。褐獴包括以下亚种
  • 2012年欧洲花式滑冰锦标赛2012年欧洲花式滑冰锦标赛为2011–2012年赛季中的一场花式滑冰赛事。本届赛事项目包括男子个人、女子个人、双人和冰舞。
  • 官禄布村官禄布村位于广州花都区新华街道,由大布村委员会所辖;村后有大小不等18座山呈现半月形;村前池塘龙眼树枝叶茂密是洪秀全12岁时手种,25年未开花结果,1849年革命前一年开花结果,1864
  • J·H·C·怀特海德约翰·亨利·康斯坦丁·怀特海德 FRS (英语:John Henry Constantine Whitehead,1904年11月11日–1960年5月8日)是一名英国数学家,是同伦论的创始人之一。怀特海德生于印度金奈 (当