死锁

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

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

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

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

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

死锁的四个条件是:

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

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

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

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

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

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

相关

  • 重症重症医学(Intensive care medicine )是医学中的一个分支,诊断及管理会危及生命的疾病或是情形,会需要器官支持(英语:Organ support)及侵入性监测设备。在重症监护室中常见的设备有
  • 风向标风向标(wind vane)是测定风来向的仪器。一般安装在四周空旷、离地约10米高的杆子上。在风压作用下,风标箭头指风的来向。一般会分作头部、水平杆和尾翼三个部分。在公元前2世纪
  • 冠状面冠状面 (英语:coronal plane或frontal plane)为左,右方向将人体纵切为前后(腹背)两部分的断面。
  • 印地安纳波利斯印第安纳波利斯(英语:Indianapolis,发音为/ˌɪndiəˈnæpəlɨs/),简称“Indy”(/ˈɪndi/),是位于美国印地安纳州中部的都市,为该州首府暨最大都市,行政上与其所在的马里昂县合一。
  • 日本动漫动漫是动画或漫画的合称与缩写,原意也是动画和漫画,但现代一般词意(被误解成)单纯的指是动画或是漫画,并且为了区别对“动画等于幼稚”这种刻板印象而才有了动漫现代大部分误解的
  • 法国与大规模杀伤性武器法国的大规模杀伤性武器早在第二次世界大战爆发前法国科学家亨利·贝克勒、皮埃尔·居礼以及玛丽·居礼便针对铀的放射能进行详细研究。在第二次世界大战爆发后便加速展开核
  • 剑桥大学哈默顿学院哈默顿学院(Homerton College)是英国剑桥大学的其中一个学院,其建筑物建于1824年,学院则成立于1976年。位于剑桥学院群落的最南端,在Hills Road上。学院原不属于剑桥,1976年才并入
  • 亚磺酰卤亚磺酰卤(英语:sulfinyl halide)是由亚砜官能团分别与烃基和卤素原子通过单键相连产生的一类有机化合物,通式为R-S(O)-X(R为烃基,X为卤素原子)。亚磺酰卤是合成如亚磺酸酯(sulfinic
  • 汤姆·寇特内汤姆·寇特内(英语:Tom Courtenay,1937年2月25日-),英格兰男演员。他曾以《化妆师(英语:The Dresser)》(1983)获得金球奖最佳戏剧类电影男主角,并获得奥斯卡最佳男主角奖提名;他并以《
  • 上原勇作上原勇作(日语:うえはら ゆうさく、1856年12月6日-1933年11月8日),日本明治~昭和时期的陆军军人。元帅陆军大将从一位大勲位功二级子爵。陆军大臣、教育总监、参谋本部参谋总长。