死锁

✍ dations ◷ 2025-10-06 23:09:04 #操作系统技术,协同控制,程式错误

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 让·博德里亚Lucile Baudrillard 、让·鲍德里亚(法语:Jean Baudrillard,1929年7月29日-2007年3月6日),又译为让·博德里亚,生于法国兰斯,殁于巴黎,社会学家及哲学家。他被称为“知识的恐怖主义者
  • 德美关系德美关系是指德国和美国间的外交关系。现在美国被认为是德国最亲密的盟友和欧盟以外最重要的合作伙伴之一。2014年,由于美国中央情报局窃听德国总理默克尔的电话,两名德国情治
  • 阿姆哈拉语阿姆哈拉语(አማርኛ,Amarəñña)是在埃塞俄比亚使用的闪语的一种,与阿拉伯语、希伯来语同属闪语族,是闪语族中使用人数第二多的语言(仅次于阿拉伯语),是埃塞俄比亚的官方语言。阿
  • 五大臣后金开国五大臣是后金政权的开国元勋及中流砥柱,相传清太祖努尔哈赤曾与五人结拜为兄弟。他们分别是额亦都、扈尔汉、何和理、费英东、安费扬古。由于跟随努尔哈赤白手起家、
  • 洞房圆房,也作成房、完房,是指两人结婚后第一次性行为,多指婚礼当天夫妻没有即时入洞房,而是结婚后一段时间才发生性行为的情况。在一些西方国家的传统中,婚姻一直要到圆房后才有约束
  • 巴特锡公园巴特西公园(Battersea Park)或译巴特锡公园,是位于英国伦敦旺兹沃思伦敦自治市巴特西地区的绿地,面积约83公顷。此园于1858年开放,位于泰晤士河南岸,对岸是切尔西。
  • 多鳞白鱼多鳞白鱼(学名:)为辐鳍鱼纲鲤形目鲤科白鱼属的淡水鱼类,被IUCN列为濒危保育类动物,分布于中国云南省,为中国特有物种。体长可达13公分,栖息在中底层水域。 维基物种中有关多鳞白鱼
  • 2018年3月逝世人物列表2018年3月逝世人物列表,是用于汇总2018年3月期间逝世人物的列表。
  • 西纳西纳-永戈穆格尔县坐标:6°05′43″S 145°01′20″E / 6.09533°S 145.02236°E / -6.09533; 145.02236西纳西纳-永戈穆格尔县(英语:Sinasina-Yonggomugl District),是巴布亚新几内亚的县份之一,位
  • 球鞋网络球鞋网络(英语:Sneakernet)形容使用移动物理介质的方式传输电子信息。一般定义被视为将信息从一台电脑传到另一台,而非使用互联网传输。包括但不限于: