死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 格雷戈里·布莱特格雷戈里·布莱特(俄语:Григорий Альфредович Брейт-Шнайдер,转写:Grigory Alfredovich Breit-Shneider,英语:Gregory Breit,1899年7月14日-1981年9
  • 满屋裕明满屋裕明(日语:満屋 裕明/みつや ひろあき Mitsuya Hiroaki,1950年8月9日-),日本病毒学家,专长HIV治疗。现任熊本大学医学部内科学教授、美国国家癌症研究所逆转录病毒感染部部长、
  • 东仪天主教东仪天主教会(英语:Eastern Catholic Churches;拉丁语:Ecclesiae Catholicae Orientales),或称东方礼天主教会、东方归一教会,是指与圣座共融的23个采行东方教会礼仪的教会。 东仪
  • 美国海关及边境保卫局美国海关和边境保护局(英语:U.S. Customs and Border Protection,缩写:CBP)是美国国土安全部规范和促进国际贸易,征收进口关税,并且执行美国贸易法律的一个机构。其主要任务是防止
  • 议事协调机构国务院议事协调机构是中华人民共和国国务院的组成机构,负责承担跨部门的重要业务工作的组织协调。根据《国务院行政机构设置和编制管理条例》第六条规定,国务院议事协调机构议
  • 马克-安东尼·夏庞蒂埃马克·安东尼·夏庞蒂埃(法语:Marc-Antoine Charpentier,1643年-1704年2月24日),法国作曲家。尽管夏庞蒂埃没有在路易十四的宫廷中担任职务,但他的才华使他在巴黎的音乐界中占有重
  • 亲爱的 我想告诉你蔡淑臻、黄志玮、赖琳恩、梁正群纬来电视网、果陀文化传播有限公司《亲爱的 我想告诉你》(英语:The Regret),为2012年纬来电视网与果陀文化传播有限公司自制的台湾偶像剧,开拍以
  • 南无阿弥陀佛南无阿弥陀佛(梵语:नमोऽमिताभा,Namo Amitābha),是汉传佛教净土宗的一个念佛修行方法,以通过念诵“南无阿弥陀佛”六字来达到转生西方极乐世界的目的。称念六字名号,愿生
  • 中熊直正中熊 直正(平假名:なかぐま なおまさ、1893年7月18日 - 1942年11月7日)为日本陆军军人。最终阶级为陆军少将。熊本县出身。1915年(大正4年)5月25日、陆军士官学校(27期)毕业。同年1
  • NHK扬声歌唱《NHK扬声歌唱》(日语:NHKのど自慢/エヌエイチケイのどじまん  */?)是日本放送协会(NHK)制作的歌唱比赛节目,逢星期日12:15-13:00于NHK综合频道及NHK广播第1频率作现场直播,是NHK