死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 二氧化硫二氧化硫,(英语:sulphur dioxide , sulfur dioxide)化学式是SO2。是最常见的硫氧化物。无色气体,有强烈刺激性气味。大气主要污染物之一。火山爆发时会喷出该气体,在许多工业过程
  • 2012年 新德里2012年金砖国家峰会,也称第四次金砖国家峰会,于2012年3月29日在印度的新德里举行。是“金砖国家”举办的第四次峰会。本次峰会的主题为“金砖国家致力于稳定、安全和繁荣的伙
  • 深度学习深度学习(英语:deep learning)是机器学习的分支,是一种以人工神经网络为架构,对数据进行表征学习的算法。深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一
  • 旅鸽旅鸽(学名:Ectopistes migratorius)又名候鸽、旅行鸽,为鸽形目鸠鸽科的一种,也是旅鸽属的唯一物种,曾经是世界上最常见的一种鸟类。主要以植物果实和小昆虫为食。据估计,过去曾有多
  • 保存期限最佳食用日期(英语:Best before),也称赏味期限、最佳赏味期、此日期前最佳,是食品制造商或包装商为其食品或饮品所标示的一个日期,告知消费者在哪个日期之前能保持其产品的质素。
  • 擅攀鸟龙擅攀鸟龙属(属名:Scansoriopteryx;意为“攀爬的翼”)是种手盗龙类恐龙,它们拥有独特的适应演化特征,并过者树栖生活。目前仅在中国辽宁省发现发现一个未成年个体化石。擅攀鸟龙拥
  • 苏联国歌《苏维埃社会主义共和国联盟国歌》(俄语:Государственный гимн СССР,罗马字转写:Gosudarstvenny Gimn SSSR)是苏联的国歌,其中文非正式曲名又依首句为《牢
  • 美国参谋长联席会议参谋首长联席会议(英语:Joint Chiefs of Staff),是美国军队陆海空各军种指挥官组成的机构。其机能与英联邦国家的参谋长委员会和部分国家的参谋部相类似,主要职能是三军之间的协
  • 角部角部,为汉字索引中的部首之一,康熙字典214个部首中的第一百四十八个(七划的则为第二个)。就繁体和简体中文中,角部归于七划部首。角部只以左、右、下方为部字。且无其他部首可用
  • 王拯王拯(1815年-1876年),字定甫,一字少鹤,号忏甫、忏庵,别署龙壁山人,清朝诗人、书画家、官员、学者,广西(今属柳州市)马平人,是“桐城派”在广西的重要代表人物,“岭西五大家”之一。王拯原