死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 约翰·弥尔顿约翰·弥尔顿(英语:John Milton,1608年12月9日-1674年11月8日),英国诗人,思想家。英格兰共和国时期曾出任公务员。因其史诗《失乐园》和反对书报审查制的《论出版自由》而闻名于后
  • 小词不当小词不当(Illicit minor)是一种形式谬误,是因三段论中的小词在结论周延,而在小前提中不周延,而导致论证无效。例句:推理规则:例句分析结果:有效性检验:其他检验:猫是猫科动物,猫是哺乳
  • 国家海洋和大气管理局国家海洋和大气管理局(英语:National Oceanic and Atmospheric Administration,缩写NOAA, /ˈnoʊ.ə/;也简称国家海洋与气象局、国家海洋大气局)是隶属美国商务部的科技部门,主要
  • 欧加登欧加登(Ogadēn,索马里语称Ogaadeen),是埃塞俄比亚东部索马里州的部分地区,面积约为180,000平方公里,在历史上曾被称为“埃塞俄比亚属索马里”(Ethiopian Somaliland),以与英属索马里
  • 吉布斯相律吉布斯相律是由约西亚·吉布斯于19世纪70年代提出的一个公式,说明了在特定相态下,系统的自由度跟其他变量的关系。它是相图的基本原理。吉布斯相律的表达式为:式中,
  • 步氏麟屬,有翻译作步氏麟,是生活在中新世晚期欧洲、非洲的一种已经灭绝的生物,由生物学家威廉·迪勒·马特修(英语:William Diller Matthew)于1929年命名。属下有两个种, B. adoumi和B. att
  • 东平水道东平水道,位于中华人民共和国广东省佛山市境内,北起三水区思贤滘,上接北江和部分西江来水,东南流至西南街道南岸村以东,右岸分出南沙涌,至禅城区南庄镇紫洞村,左岸分流出潭洲水道,转
  • 戴熙戴熙(1801年-1860年),字醇士,号鹿床、鹿床居士、棆庵、莼溪、松屏、孟辛、井东居士等,浙江钱塘(今杭州)人,清代政治人物、画家,进士出身。道光十二年(1832年)进士,咸丰年间任职翰林院,官至
  • 吉米·法克斯詹姆斯·伊莫瑞·法克斯(James Emory Foxx,1907年10月22日-1967年7月21日)是美国职棒大联盟具有长打能力的右打者。法克斯是第二位打出500支本垒打的球员,并且以32岁11月又2天成
  • 西格瓦尔德亲王 (乌普兰公爵)西格瓦尔德·奥斯卡·弗雷德里克·贝尔纳多特(Prins Sigvard Bernadotte,1907年6月7日-2002年2月4日),是瑞典王子、乌普兰公爵,瑞典国王古斯塔夫六世·阿道夫的次子,1934年娶平民Er