死锁

✍ dations ◷ 2025-11-20 15:26:38 #操作系统技术,协同控制,程式错误

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 院士院士(Fellow),近年又译会士,在汉语中通常指代表一个国家最高水平和世界领先水平的的科技顶尖人物、最高学术权威。院士多为具有崇高学术机构透过内部评选而出任的荣誉终身职务。
  • 水产渔业、水产业是指采捕或养殖水生动物、植物的生产事业和行业。渔业狭义上指捕捞渔业或称捕鱼业、渔捞业,可细分近海渔业和远洋渔业。此外,渔业还有一种叫养殖渔业(或称水产养殖
  • 725年前9世纪 | 前8世纪 | 前7世纪前740年代 前730年代 | 前720年代 | 前710年代 前700年代前730年 前729年 前728年 前727年 前726年 | 前725年 | 前724年 前723年 前722年 前7
  • 魔兽争霸3《魔兽争霸III:混乱之治》(英语:Warcraft III: Reign of Chaos)是一款即时战略游戏,属于暴雪娱乐出品的《魔兽争霸》系列第三代作品,于2002年发行。迄今总共发布了二十八个版本。2
  • 铰口鲨铰口鲨(学名:Ginglymostoma cirratum),俗称护士鲨(英语:Nurse Shark),体长3米,体重可达100千克左右。白日于海底或岩洞内休息,夜间捕食。通常以吸食的方式捕捉鱼类、甲壳类和软体动物
  • 天定刘守分,明朝末年清朝初年抗清领袖。刘守分在河北巨鹿聚众反清,自称总兵,改元天定。顺治元年(1644年)九月,被清军镇守真顺广大署总兵王景启和道员丘茂华镇压。刘守分的年号天定(1644
  • FT中文网《金融时报》(英语:Financial Times,简称FT),是一份以英语发行,财经报导为主,总部位于英国伦敦,由位于日本东京的日本经济新闻百分之百控股,平均每日发行量约为35万份,含电子版订阅人
  • 东方2号东方二号(俄语:Восток-2)是前苏联的太空计划,1961年8月6日发射升空,并 首次成功在地球轨道上做多圈载人航天,航天员为盖尔曼·季托夫(Герман Степанович Т
  • 选举或任命的女性政府首脑列表这是关于女性担任选举或者任命的政府首脑的列表。关于总统制国家兼任国家元首的政府首脑,参见选举或任命的女性国家元首列表。
  • Gopher (网络协议)Gopher是一个互联网上使用的分布型的文件搜集获取网络协议。它是1991年由明尼苏达大学的保罗·林德纳(Paul Lindner)和马克·麦卡希尔发明的。“Gopher”(地鼠)这个名字有三层含