死锁

✍ dations ◷ 2025-11-24 18:55:48 #操作系统技术,协同控制,程式错误

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 群马大学群马大学群马大学(ぐんまだいがく、Gunma University)1949年设立的群马县的国立大学法人。校区分为:前桥市荒牧地区(教育学部和社会信息学部所在地)、前桥市昭和地区(医学部所在地
  • 和县人和县人(学名:Homo erectus hexianensis),旧称和县猿人,学名直立人和县亚种,是在更新世中期、旧石器时代早期生活在华东地区的直立人的代表之一。1980~1981年间,安徽和县陶店镇汪家山
  • 热那亚共和国热那亚共和国(利古里亚语:Repúbrica de Zêna /re'pybrika 'de 'ze:na/,拉丁语:Res Publica Ianuensis,意大利语:Repubblica di Genova;全名最尊贵的热那亚共和国,1798-1805年称利
  • 查尔斯-阿道夫·武尔茨查尔斯-阿道夫·武尔茨(英语:Charles Adolphe Wurtz,1817年11月26日-1884年5月10日),来自阿尔萨斯的法国化学家。最让人津津乐道的是他拥护原子理论和化合物的结构理论,而与持怀疑
  • 白米白米,又称粘米,是稻米经过精制后的一种米。由于白米在加工过程中经过精磨、去掉大米外层部分等程序,白米的营养价值要低于其它粗制米。不过在历史上,就口感与香味而言,绝大多数人
  • 叶菜绿叶蔬菜,也称作叶菜,是植物叶子可以作为蔬菜烹饪、食用。 虽然可作为绿叶蔬菜的品种千差万别,但大多数都有相似的营养成分与烹饪方法。全世界已知有近千种植物作为绿叶蔬菜。
  • RB11AD6, 1GH6, 1GUX, 1H25, 1N4M, 1O9K, 1PJM, 2AZE, 2QDJ, 2R7G, 3N5U, 3POM, 4ELJ, 4ELL· RNA polymerase II activating transcription factor binding · DNA binding
  • 拉脱维亚电视台拉脱维亚电视台(拉脱维亚语:Latvijas Televīzija / LTV)是拉脱维亚的公共电视台。拉脱维亚电视台六成的收入由政府赞助,其余部分通过广告获得。拉脱维亚电视台目前拥有两个频道
  • 北美水獭北美水獭(学名:Lontra canadensis),是一种产于北美洲的水獭,也叫北方水獭。分布于整个北美大陆的河岸与淡水水域,包括加拿大、阿拉斯加、美国西北、亚特兰大等州,以及墨西哥湾。北
  • 拉什科·卡蒂奇拉什科·卡蒂奇(塞尔维亚语:Рашко Катић,1980年12月8日-),塞尔维亚篮球运动员,在场上的位置是中锋。他现在效力于西班牙篮球甲级联赛球队萨拉戈萨2002篮球俱乐部。他也代