死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • rDNA核糖体DNA(Ribosomal DNA,rDNA)是一种DNA序列,该序列用于rRNA编码。核糖体是蛋白质和rRNA分子的组合,翻译mRNA分子以产生蛋白质的组件。如该图所示,真核生物的rDNA包括一个单元段,
  • 冬天冬季是部分地区一年四季中的第四季,由于天气转冷(赤道地区除外),在很多地区都意味着沉寂和冷清。生物在寒冷来袭的时候会减少生命活动,很多植物会落叶,动物会休眠,有的称作冬眠。候
  • 前东德五个联邦州德国新联邦州(德语:die neuen Bundesländer)是指在1990年10月3日两德统一时从原东德加入联邦德国的5个州。这些新加入联邦德国的州在1952年被东德政府废除,在1990年重新建立,分
  • .fo.fo为丹麦海外领地法罗群岛国家及地区顶级域(ccTLD)的域名。A .ac .ad .ae .af .ag .ai .al .am .ao .aq .ar .as .at .au .aw .ax .az   B .ba .bb .bd .be .bf .bg .bh
  • 非合并建制领土美国领地是指美国行政区划的一种分类,其领土由美国政府管理但不属于美国任何一个州。建立这些领地的目的是为了管理这些新获得的地区,因为当时美国领土的边界还在扩张中。这些
  • 2,3,4,5,6,7,8-七羟基辛醛2,3,4,5,6,7,8-七羟基辛醛(IUPAC名:2,3,4,5,6,7,8-heptahydroxyoctanal)是一类辛醛糖。可在库尔勒香梨等植物中发现。共有64种镜像异构物,例如:D-赤藓-L-半乳辛糖、D-赤藓-L-甘
  • 亚碲酸亚碲酸是一种碲的含氧酸,化学式为H2TeO3。 人们对这种化合物不太了解。其中一种结构简式为(HO)2TeO。原则上,亚碲酸可以由二氧化碲与水反应制得。它形成的盐却是众所周知的,例
  • 詹姆斯·冈恩 (天文学家)詹姆斯·爱德华·冈恩(英语:James Edward Gunn,1938年10月21日-),美国天文学家,普林斯顿大学尤金·希金斯天文学教授。冈恩的早期理论工作建立了对星系形成、星系际空间性质的当前
  • 马里尤纳斯·佩特拉维修斯马里尤纳斯·佩特拉维修斯(立陶宛语:Marijonas Petravičius,1979年10月24日-),立陶宛篮球运动员。他曾经在意大利球队米兰奥林匹亚效力。他现在已经退役。他也代表立陶宛国家篮球
  • 飞行计划飞行计划(Flight plans)指的是飞行员或其所属航空公司,在航空器起飞前,要呈交给航管单位的计划书,由航管单位许可后才可实施飞行。飞行计划有下列内容:目视飞航规则 (Visual Fligh