死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 经济部经济部,亦为商业部、工商部、商务部,是指在一个政府中,掌管该国家的工商业发展及国际贸易等产业事务之最高机关的部门。以下为世界各国的经济部:
  • 内蒙古民族大学内蒙古民族大学位于内蒙古东部的通辽市,始建于1958年,是内蒙古自治区政府和国家民委共建的一所综合性民族大学。2000年6月内蒙古民族师范学院、内蒙古蒙医学院、哲里木畜牧学
  • 张丰毅张丰毅(1956年9月1日-),籍贯河南唐河,生于湖南长沙,中国大陆男演员。最知名的作品是《霸王别姬》。现任妻子为霍凡,前妻是演员吕丽萍。张丰毅生于湖南长沙,未满周岁便随父母到了云南
  • 拿督拿督(Datuk, Dato'),源自于古马来语,是一个常见于马来西亚、印度尼西亚和文莱的称号,乃是对有地位和崇高名望者的一种尊称。在马来西亚和文莱,“拿督”也是荣誉制度下的一种称号,不
  • 班戈班戈(英语:Bangor)是美国缅因州的一座城市、佩诺布斯科特县的县治,位于佩诺布斯科特河东岸。根据2000年人口普查,班戈共有人口31,473人,是该州第三大城市。1769年英国殖民者在当地
  • 萨默塞特郡萨默塞特郡(英语:Somerset,发音: .mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium"
  • 长板长板是滑板运动的一种,由滑浪及技术板共同演变出来。由于长板比较宽和长,初学者较容易平衡上手,而且比一般滑板玩法多,可大致分为2D2F(速降Downhill、走板Dancing、花式下坡Free
  • 稳定小波转换稳定小波转换(Stationary Wavelet Transform, SWT)是小波分析(Wavelet Analysis)的一种转换,为离散小波变换(Discrete Wavelet Transform, DWT)的变形。稳定小波转换可以弥补
  • 李铎 (朝鲜)李铎(朝鲜语:이탁/李鐸,1509年5月13日-1576年2月9日),字善鸣,朝鲜王朝中期文臣。本贯全义李氏。1531年通过进士试,1535年文科及第,任权知副正字。1542年,历任正言、佐郎、持平。后与洪
  • 约瑟夫·莱特 (语言学家)约瑟夫·莱特(英语:Joseph Wright,1855年10月31日-1930年2月27日),FBA,是牛津大学的比较语言学教授,也是知名小说家兼语言学家J·R·R·托尔金的老师。他出身低下,但最终成了一名学者