死锁

✍ dations ◷ 2025-08-14 14:18:13 #操作系统技术,协同控制,程式错误

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 氧气氧气(英语:Oxygen, Dioxygen,分子式:O2)是氧元素最常见的单质形态,在空气中按体积分数算大约占21%,在标准状况下是气体,不易溶于水,密度比空气略大,氧气的密度是1.429g/L 。不可燃,可助
  • 胰岛A细胞胰岛A细胞(alpha cells,亦作α-cells),是胰岛中的一种内分泌腺上皮细胞。在正常生理状态下,胰岛α细胞约占胰岛细胞总数的20%,而胰岛β细胞约占75%。胰岛α与胰岛β细胞的比例适当
  • 俗名在生物分类中,俗名是指任何非拉丁学名的名称。在同一种语言的俗名中,又分普通名(common name)和别名。普通名是在该语言中被广泛接受使用名称;别名是普通名之外的其他所有俗名
  • 高等学校高等学校可以指:
  • 大盆地沙漠大盆地沙漠为大盆地的一部分,位于内华达山脉与瓦萨奇山脉之间,沙漠的地理区范围近似世界自然基金会定义的大盆地灌木草原地区以及美国国家环境保护局与美国地质调查局定义的中
  • 东帝汶独立革命阵线东帝汶独立革命阵线(葡萄牙语:Frente Revolucionária de Timor-Leste Independente),简称革阵(FRETILIN),是东帝汶的一个左翼政党。自1974年至1998年间为争取东帝汶独立之反抗运动
  • 野外消防森林消防是对于森林火灾的救援专业,野外的环境与城市火灾有大量不同,引燃物是低价值的树木同时人口稀少,而且水源取得困难,风向猛烈影响火情巨大,所以森林消防重心放在于火区的封
  • 儿玉源太郎儿玉源太郎(1852年3月16日-1906年7月23日),正二位勲一等功一级子爵(追封伯爵),长州藩的支藩——德山藩出身(今山口县周南市),台湾日治时期第4任总督(1898-1906)。儿玉在总督任内,也在中央
  • 汤马士·盖奇汤马士·盖奇(英语:Thomas Gage,1719/1720年-1787年4月2日),是英国陆军的一名将军,在美国独立战争初期担任北美英军总司令及马萨诸塞湾省总督(英语:List of colonial governors of Ma
  • 申克诉合众国案申克诉合众国案(Schenck v. United States;249 U.S. 47 (1919))是美国联邦最高法院判决的一宗支持1917年间谍法的案例,最高法院在此案中指出被告无权援引美国宪法第一修正案包