死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 亨廷顿病亨廷顿舞蹈症(Huntington's Disease, HD)是一种遗传性疾病,会导致脑细胞死亡。早期症状往往是情绪或智力方面的轻微问题,接着是不协调和不稳定的步伐(英语:Gait)。随着疾病的进展,身
  • 字母的历史字母的历史从古埃及开始。公元前27世纪,古埃及人发展出一套含22个单音的象形文字来表达他们语言的子音,第23个字元推测是用来表示字首和字尾的母音。这些字元成为意音文字的发
  • 人参人参又称为亚洲参、红参、生晒参、山晒山参、石柱参、朝鲜参、野山参、人衔、鬼盖、土精、神草,在中国东北土名棒槌,是五加科人参属的一种,具有肉质的根,可药用,主要生长在东亚,特
  • 列文虎克奖章列文虎克奖章(荷兰语:Leeuwenhoekmedaille)是由荷兰皇家艺术与科学学院1877年创建的奖章,以17/18世纪微生物科学家列文虎克的名字命名。该奖章每十年颁发一次,旨在表彰对微生物领
  • C·格兰特·威尔森卡尔顿·格兰特·威尔森(英语:Carlton Grant Willson,1939年5月30日-),美国化学家。1962年获加州大学伯克利分校化学学士学位,1969年获加州大学圣地亚哥分校有机化学硕士学位。1962
  • 震源震源(英语:hypocenter),宏观上是指地震能量大量释放之处,而微观上是指首先发生地震波的地方,通常指地下岩层断裂错动的地区。在测震领域中,常将震源看作是一个理想化的面源或点源。
  • 广元市广元市,古称利州,是中华人民共和国四川省下辖的地级市,位于四川省北部。市境东邻巴中市,南接南充市,西连绵阳市,北与甘肃省陇南市和陕西省汉中市接壤。地处川、陕、甘三省结合部,四
  • 常丁求常丁求(1967年-),湖南省衡阳县金兰镇泉溪村人,中国人民解放军空军中将。1984年通过招飞入伍,进入飞行基础学校学习。历任空军部队飞行大队长(1996年)、空军航空兵某飞行团团长(2000年
  • 伊丽莎白·萨马拉伊丽莎白·萨马拉(罗马尼亚语:Elizabeta Samara,1989年4月15日-),出生于康斯坦察,罗马尼亚女子乒乓球运动员。她曾获得7枚欧洲乒乓球锦标赛金牌。
  • 阳明黄帝神宫阳明黄帝神宫位于台湾台北市丰年路,为主祀黄帝之轩辕教庙宇。该建物兴建于1981年,今为位于台北北投区之仿古庙宇建筑。另外,该庙宇的组织型态为管理人制,祭典日期则是每年农历之