死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 主要机构《联合国宪章》规定,联合国有六大主要机构:联合国大会、安全理事会、经济及社会理事会、托管理事会、秘书处和国际法院。其中,托管理事会随着联合国最后一块托管领土帕劳的独立
  • 金银潭医院武汉市金银潭医院是一家位于中华人民共和国湖北省武汉市东西湖区的一家公立医院,是武汉市卫生健康委员会直属单位,三级甲等专科医院。武汉市金银潭医院是湖北省和武汉市突发公
  • 摇头丸摇头丸是一种毒品,其主要成分是MDMA,间中或掺有MDEA、MDA、MBDB或安非他命等其他成分。服用摇头丸者可即兴随音乐剧烈地不停抖动而不觉痛苦。过量摄入摇头丸可能带来数种致命
  • 外语北京大学外国语学院是北京大学下属的一个学院,隶属于北京大学人文学部。1919年,北京大学废科改系,当时分为14个系,由留美教授胡适担任英国文学系主任。胡适与英文系的另一位著名
  • 吴鸿麒日治台湾(1902-1945)吴鸿麒(1902年-1947年),是一位祖籍福建汀州龙岩、生于台湾中坜的客家籍人物。曾于台湾日治时期担任教师、律师,二战结束后任台湾台北地方法院民事庭及台湾高等
  • 达拉斯爱田机场达拉斯勒夫机场,又常译为达拉斯爱田机场(英文:Dallas Love Field;IATA代码:DAL;ICAO代码:KDAL;FAA代码:DAL),是一座位于美国德克萨斯州达拉斯的机场,距离市中心约10公里。直到1974年达拉
  • 底夸克底夸克是带有电荷−1⁄3 e的 第三代夸克,又称为美夸克。虽然量子色动力学描述每一种夸克的方法都很类似,由于底夸克带有很大的裸质量(英语:bare mass)(约为7000420000000000000♠
  • 2017-2018年伊朗示威示威者伊朗政府最少21人死亡2017-2018年伊朗示威(波斯语:تظاهرات ۱۳۹۶ ایران‎)是自2017年12月28日起在伊朗发动的一连串示威。示威本来在伊朗第二大城市马什
  • 百特国际José E. Almeida, (董事长兼首席执行官) 百特国际(英语:Baxter International Inc.)是一家美国医疗器械公司。主要生产治疗血友病,肾病变药物和静脉注射器材。1931年在美国伊利
  • 克鲁斯特皮尔斯自治市克鲁斯特皮尔斯自治市(拉脱维亚语:Krustpils novads),是拉脱维亚的一个自治市,设立于2009年,位于该国东南部。人口6827人,面积812.2平方公里,人口密度约8.4人/km2。