跳转到内容

死锁:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
添加{{expand}}、{{expert}}和{{unreferenced}}等标记({{multiple issues}})到条目 (TW)
Tang891228留言 | 贡献
簡繁轉換修正
第6行: 第6行:
{{NoteTA|G1=IT}}
{{NoteTA|G1=IT}}
[[File:Process deadlock.svg|thumb|right|P1、P2兩個process都需要資源才能繼續執行。P1擁有資源R2、還需要額外資源R1才能執行;P2擁有資源R1、還需要額外資源R2才能執行,兩邊都在互相等待而沒有任何一個可執行。]]
[[File:Process deadlock.svg|thumb|right|P1、P2兩個process都需要資源才能繼續執行。P1擁有資源R2、還需要額外資源R1才能執行;P2擁有資源R1、還需要額外資源R2才能執行,兩邊都在互相等待而沒有任何一個可執行。]]
'''死锁'''({{lang-en|Deadlock}}),又譯為死結,計算機科學名詞。當兩個以上的運算單元,雙方都在等待對方停止執行,以取得系統資源,但是沒有一方提前退出時,這種狀況,就稱為死結。在多工作業系統中,作業系統為了協調不同行程,能否取得系統資源時,為了讓系統運作,就必須要解決這個問題。
'''-{死锁}-'''({{lang-en|Deadlock}}),又譯為-{死結}-,計算機科學名詞。當兩個以上的運算單元,雙方都在等待對方停止執行,以取得系統資源,但是沒有一方提前退出時,這種狀況,就稱為死結。在多工作業系統中,作業系統為了協調不同行程,能否取得系統資源時,為了讓系統運作,就必須要解決這個問題。


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

2016年3月13日 (日) 09:45的版本

P1、P2兩個process都需要資源才能繼續執行。P1擁有資源R2、還需要額外資源R1才能執行;P2擁有資源R1、還需要額外資源R2才能執行,兩邊都在互相等待而沒有任何一個可執行。

死锁(英語:Deadlock),又譯為死結,計算機科學名詞。當兩個以上的運算單元,雙方都在等待對方停止執行,以取得系統資源,但是沒有一方提前退出時,這種狀況,就稱為死結。在多工作業系統中,作業系統為了協調不同行程,能否取得系統資源時,為了讓系統運作,就必須要解決這個問題。

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

简介

例如,一个进程 p1占用了显示器,同时又必须使用打印机,而打印机被进程p2占用,p2又必须使用显示器,这样就形成了死锁。

死锁的预防

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

死锁的四个条件是:

禁止抢占:no preemption

持有和等待:hold and wait

互斥:mutual exclusion

循环等待:circular waiting

预防死锁就是至少破坏这四个条件其中一項,即破坏“禁止抢占”、破坏“持有等待”、破坏“资源互斥”和破坏“循环等待”。

死锁的避免

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

死锁的消除

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

同样也可以把一个或多个进程回滚到先前的某个状态。如果一个进程被多次回滚,迟迟不能占用必需的系统资源,可能会导致进程饥饿

参见

外部連結