死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 有机化合物有机化合物(德语:Organische Verbindung;英语:organic compound、organic chemical),简称有机物,是含碳化合物,但是碳氧化物(如一氧化碳、二氧化碳)、碳酸、碳酸盐、碳酸氢盐、氢氰酸
  • 於崇文中国科学院院士(地学部,1995年)於崇文(1924年2月15日-),生于上海,原籍浙江宁波,中国地球化学动力学家、矿床地球化学家,中国科学院院士。1991年,获李四光地质科学奖。1995年,当选为中国
  • 急性症状性癫痫癫痫发作(epileptic seizure 或epileptic fit,有时在文献或新闻只简单称为 seizure 或fit) 是因为脑中的过度的神经振荡而出现的医学病征。 这种脑内异常的外溢效应(outward eff
  • 唐努乌拉山脉唐努乌拉山脉(俄语:Танну-Ола;图瓦语:Таңды-Уула)是俄罗斯的山脉,位于与蒙古国接壤的边境,由图瓦共和国负责管辖,属于南西伯利亚山脉的一部分,最高点海拔高度2,930
  • 阿卡人阿卡人(Yani)是泰国、缅甸、老挝、印度东北部以及中国云南高海拔山区小村庄中居住的民族,他们于20世纪初期自中国来到东南亚。缅甸和老挝的内战导致阿卡人移民的增加,现今共有80
  • 维尔纳·海森伯维尔纳·海森伯(德语:Werner Heisenberg,1901年12月5日-1976年2月1日),德国物理学家,量子力学创始人之一,“哥本哈根学派”代表性人物。1933年,海森伯因为“创立量子力学以及由此导致
  • 草莓汁草莓汁,是指从草莓果肉榨出的果汁。草莓汁的制造是用榨汁机压榨果肉。 由于自制草莓汁的过程必须榨汁再将果肉残渣过滤掉,非常麻烦,所以工厂也会生产苹果汁,供消费者购买。草莓
  • 安托万·巴纳夫安托万·皮埃尔·约瑟夫·玛丽·巴纳夫(法语:Antoine Pierre Joseph Marie Barnave,1761年10月22日-1793年11月29日)是法兰西的政治家,在法国大革命早期连同奥诺雷·米拉波是最有
  • 休戈·布莱克(1) Josephine Foster (1921-1951) 休戈·拉斐特·布莱克(Hugo Lafayette Black,1886年2月27日-1971年9月25日),美国政治家及法学家。曾于1927年至1937年担任民主党亚拉巴马州参
  • 朱塞佩·马尔图齐朱塞佩·马尔图齐(意大利语:Giuseppe Martucci,1856年1月6日-1909年6月1日),意大利作曲家,钢琴家,指挥家,音乐教育家。他的父亲是一位小号手,马尔图齐自幼学习钢琴,后进入那不勒斯音乐