死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 防止船舶污染国际公约防止船舶污染国际公约(英语:International Convention for the Prevention of Pollution from Ships,简称MARPOL),现称“关于1973年防止船舶污染国际公约之1978年议定书(英语:Proto
  • 虔婆老鸨(鸨,音:Bǎo),又称鸨母、虔婆、龟婆,是妓院的实际经营者,或妓女的经纪人,一般指女性;男性则称龟公、龟头、皮条客。其中的老代表熟练之人,鸨为会走不会飞之鸟,在中国古代象征淫贱。
  • 地表水水资源包括经人类控制并直接可供灌溉、发电、给水、航运、养殖等用途的地表水和地下水,以及江河、湖泊、井、泉、潮汐、港湾和养殖水域等。水资源是发展国民经济不可缺少的重
  • 一笼傻鸟一笼傻鸟(La Cage aux Folles)是一部1978年法国和意大利合拍的电影,改编自1973年同名音乐剧。电影的导演是爱德华多·莫利纳罗。这是一部同性恋题材电影。电影获得了不错的评价
  • Sbsub2/subOsub4/sub四氧化二锑是一种无机化合物,化学式为Sb2O4。这种物质存在于黄锑矿(cervantite)中。它是白色固体但在加热时可逆的变黄。这种物质的最简式为SbO2,但被称作四氧化二锑来表明其中
  • 斯蒂芬·梅努钦斯蒂芬·特纳·姆努钦(Steven Terner Mnuchin,i/məˈnuːtʃɪn/ mə-NOO-chin;1962年12月21日-)是美国的一位银行家,现任美国财政部长;曾是电影制片人和对冲基金经理。他出生在一
  • 头状骨头状骨(capitate bone)是人类掌骨中最大的一块,为腕骨中央的骨头。较圆的一端位于手舟骨及月骨所组成的凹槽上。许多哺乳类动物身上也可以找到这块骨头,与爬虫类及两栖类身上的
  • 巴尔蒂斯巴尔蒂斯(波兰语:Balthus,1908年2月29日-2001年2月18日),原名巴尔塔扎·克洛索夫斯基·德罗拉(波兰语:Balthasar Klossowski de Rola),波兰裔法国具象派画家。其作品既广受推崇,又极富
  • 刘亹刘亹(1851年10月9日-1894年10月28日),字贻棫。江苏省常州府武进县(今常州市武进区)人,晚清政治人物。光绪五年(1880年):捐得湖南试用同知衔,加五级。十三年(1888年):补授浙江严州府分水县
  • 君子兰属见正文君子兰属(学名:)是石蒜科的一个属,原产于南非。其下的各种均为观赏花卉,常在温室盆栽供观赏。分株或种子繁殖。