死锁

✍ dations ◷ 2025-06-30 15:34:50 #操作系统技术,协同控制,程式错误

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 头孢氨苄头孢氨苄(英语:Cefalexin或英语:Cephalexin,又译先锋霉素Ⅳ、又作赐福力欣、头孢力欣、赐尔复新、西华烈信、施华林、喜化幸、雪华力欣、或赐泛立信等)。是一种半合成的第一代口
  • 健康检查全面医学检查(英文:general medical examination)又称为健康检查(英文:Health Check)是为一种常见的预防医学。一个具体的定义为:一个自我感觉健康良好的成人定期到院进行身心健康
  • 第四产业第四产业(英语:Quaternary sector of the economy),是概念性产品的相关行业。由于概念性产品的生产过程很难釐定,因此相关行业有时会被归类成第一产业、 第二产业、第三产业以外
  • 白村江之战白江口之战,又称白村江之战、白村江海战,是大唐、新罗联军与倭国、百济联军于公元663年在白江口(今韩国锦江入海口)发生的一次海战,战役最后以大唐、新罗联军的胜利,百济国灭亡与
  • 湖南人民出版社湖南人民出版社创立于1951年1月,是一家以编辑、出版、发行哲学、社会科学读物为主的综合性出版社。ISBN代号为978-7-217。2008年12月25日,湖南人民出版社加入中南传媒转制后更
  • span class=nowrapBPOsub4/sub/span磷酸硼是一种无机化合物,化学式为BPO4,可由磷酸和硼酸反应制备,它是白色难熔固体,在1450℃以上挥发。磷酸硼不能形成玻璃体。磷酸硼由磷酸和硼酸在80 - 1200℃之间反应制备。较
  • 乞力马扎罗山乞力马扎罗山(斯瓦希里语:Kilimanjaro,发音: /ˌkɪlɪmənˈdʒɑːroʊ/,意为“灿烂发光的山”)位于坦桑尼亚东北的乞力马扎罗区,临近肯尼亚边界,是非洲的最高山,常被称为“非洲屋
  • 瓦莱丽·索拉纳斯瓦莱丽·让·索拉纳斯(英语:Valerie Jean Solanas,1936年4月9日-1988年4月25日)是一位美国激进女性主义作家,曾经试图暗杀艺术家安迪·沃霍尔。1936年索拉纳斯出生于新泽西州,十几
  • 奥斯卡·贝尔纳多特奥斯卡亲王(Prins Oscar Carl August Bernadotte,1859年11月15日-1953年10月4日),全名奥斯卡·卡尔·奥古斯特·贝尔纳多特,是瑞典国王奥斯卡二世和索菲亚的第二子,获封哥特兰蒂亚
  • 博苏姆维湖博苏姆维湖(Lake Bosumtwi)是陨石撞击坑积聚雨水而成,是加纳的唯一天然湖泊,位于库马西东南约30公里,是当地人热门的游泳和钓鱼地点,湖边有约30个村落,人口约70,000。波森维湖特征