死锁

✍ dations ◷ 2025-11-29 23:33:31 #操作系统技术,协同控制,程式错误

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 扫描电镜扫描电子显微镜(英语:Scanning Electron Microscope,缩写为SEM),简称扫描电镜,是一种电子显微镜,其通过用聚焦电子束扫描样品的表面来产生样品表面的图像。电子与样品中的原子相互
  • 阿拉伯地区阿拉伯世界主要城市阿拉伯世界(阿拉伯语:العالم العربي‎)是指分布于西亚和北非,主要以阿拉伯语作为主要语言的国家。从西边的毛里塔尼亚延伸至东边的阿曼,横跨非洲
  • 酪农业酪农业(英语:Dairy farming)是一种畜牧业的型态,意即农民种植牧草作为饲料,喂养乳牛、乳羊等,以生产鲜乳或乳制品的农业。目前全球牛奶生产量以印度最多,美国、中国次之,主要是以当
  • PaO一氧化镤是具放射性的无机化合物,是一种镤的氧化物,化学式为PaO,是白色不透明晶体。一氧化镤有时能再盐岩中发现。一氧化镤和其他镤氧化物不同在于一氧化镤只有2价。镤氧化时,能
  • 让·佩兰让·巴蒂斯特·佩兰(法语:Jean Baptiste Perrin,1870年9月30日-1942年4月17日),法国物理学家,生于法国里尔。1926年诺贝尔物理学奖获得者。让·巴蒂斯特·佩兰出生于法国 里尔,读过
  • 阿什河阿什河是黑龙江省境内的一条河流,为松花江的支流。历史上又称阿勒楚喀河、按出虎水,都为满语“黄金”的意思。有两个源头。右源为阿城河,发源于阿城市山河乡大个岭南麓。左源为
  • 鞍之战鞌之战又名鞍之战,是中国历史上春秋时期齐国和晋国之间发生于前589年六月十七的一场战斗。作战的地点是鞌(今济南西北)。前589年,齐顷公率齐军讨伐鲁国及卫国,鲁国及卫国派使者至
  • 澳洲野犬澳洲野犬(学名:)或丁格犬(英语:dingo)是一群史前已经野化的犬,是狼的次级亚种,可能源自伊朗狼(),尽管叫做澳洲野犬,但其分布并不限于澳大利亚,也不是澳大利亚的原生物种。澳洲野犬生活在
  • 芭儿·拉法莉芭儿·拉法莉(英语:Bar Refaeli,希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"Ezra SIL","Ezra SIL SR","Keter
  • 阿斯玛·阿萨德阿斯玛·阿萨德(阿拉伯语:أسماء الأسد‎);née Asma Fawaz al-Akhras(阿拉伯语:أسماء فواز الأخرس‎,1975年8月11日-),是一名英国出生的叙利亚人,2000年12月