死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • Os4f14 5d6 6s22, 8, 18, 32, 14, 2蒸气压第一:840 kJ·mol−1 第二:1600 kJ·mol主条目:锇的同位素锇(Osmium,旧译作銤、鐭)是一种化学元素,符号为Os,原子序为76。锇金属坚硬、易
  • 采邑制采邑制是欧洲在封建时代,尤其是中世纪早期在西欧地区主要实施的一种土地占有制度。采邑制最初是查理·马特在担任法兰克王国的宫相期间(715年─741年)实施的。以前墨洛温王朝时
  • 异丁酰辅酶A去氢酶缺乏症异丁酰辅酶A脱氢酵素缺乏症(英语:Isobutyryl-coenzyme A dehydrogenase deficiency)是一种遗传病,其会导致患者无法制造出正确的蛋白质,使异丁酰辅酶A脱氢酶不能充分分解缬氨酸。
  • 在台协会高雄分处美国在台协会高雄分处(英语:American Institute in Taiwan Kaohsiung Branch Office,简称 AIT/K)是美国国务院根据《台湾关系法》所设置的民间非营利组织——美国在台协会外驻高
  • 5族元素固体、液体、气体5族元素(又称钒族元素)是指元素周期表上第5族(ⅤB 族)的元素,位于4族元素和6族元素之间。5族元素包含钒(V)、铌(Nb)、钽(Ta)、�(Db),均为过渡金属元素,其中�为人造元素,具高度
  • 襾部襾部,为汉字索引中的部首之一,康熙字典214个部首中的第一百四十六个(六划的则为第二十九个)。就繁体和简体中文中,襾部归于六划部首。襾部大都只以上方为部字。且无其他部首可用
  • 节胸属节胸属(学名:),又称节胸蜈蚣属,是史前的倍足纲动物,即现今蜈蚣及马陆的远古亲属。虽然名叫节胸蜈蚣,但是实际上比起蜈蚣节胸属与马陆的亲缘关系较近。节胸属成员的体型范围在0.3至2
  • 法里德·艾哈迈德法里德·艾哈迈德(Fareed Ahmad,1989年4月28日-),巴基斯坦男子曲棍球运动员,亦为巴基斯坦国家男子曲棍球队成员。2010年11月,法里德·艾哈迈德代表巴基斯坦出战广州亚运会,参加曲棍
  • 卡伊诺卡伊诺(意大利语:Caino),是意大利布雷西亚省的一个市镇。总面积17平方公里,人口2064人,人口密度121.4人/平方公里(2009年)。国家统计(ISTAT)代码为017031。
  • 新垣宏一新垣宏一(1913年1月30日-2002年6月30日)是台湾日治时代高雄市出身的作家。“湾生”作家之一。大正二年(1913年)生于高雄市。就读于高雄第一小学校(鼓山国小)、高雄中学校、台北高等