當(dāng)前位置: 首頁(yè) ? 資訊 ? 科普博覽 ? 科技博覽 ? 正文

科技名詞 | 死鎖 deadlock

發(fā)布日期:2023-02-20??來(lái)源:全國(guó)科學(xué)技術(shù)名詞審定委員會(huì)??瀏覽次數(shù):38
放大字體??縮小字體
核心提示:死鎖deadlock定義:一種進(jìn)程執(zhí)行過(guò)程中的循環(huán)等待現(xiàn)象。一組進(jìn)程中的每個(gè)進(jìn)程占用部分資源同時(shí)又等待其他進(jìn)程占用的資源,造成所有進(jìn)程不會(huì)結(jié)束循環(huán)等待,無(wú)法繼續(xù)執(zhí)行。學(xué)科:計(jì)算機(jī)科學(xué)技術(shù)_系統(tǒng)軟件_操作系統(tǒng)相關(guān)名詞:進(jìn)程 死鎖預(yù)防 死鎖避免 死鎖檢測(cè)圖片來(lái)源:視覺(jué)中國(guó)【延伸閱讀】死鎖是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,由于競(jìng)爭(zhēng)資源或彼此通信而造

死鎖

deadlock

定義:一種進(jìn)程執(zhí)行過(guò)程中的循環(huán)等待現(xiàn)象。一組進(jìn)程中的每個(gè)進(jìn)程占用部分資源同時(shí)又等待其他進(jìn)程占用的資源,造成所有進(jìn)程不會(huì)結(jié)束循環(huán)等待,無(wú)法繼續(xù)執(zhí)行。

學(xué)科:計(jì)算機(jī)科學(xué)技術(shù)_系統(tǒng)軟件_操作系統(tǒng)

相關(guān)名詞:進(jìn)程 死鎖預(yù)防 死鎖避免 死鎖檢測(cè)

圖片來(lái)源:視覺(jué)中國(guó)

【延伸閱讀】

死鎖是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,由于競(jìng)爭(zhēng)資源或彼此通信而造成的一種阻塞現(xiàn)象。若無(wú)外力介入,它們都將無(wú)法推進(jìn)下去。死鎖是并發(fā)編程中非常重要的一個(gè)問(wèn)題,死鎖使程序運(yùn)行無(wú)法得到正確的結(jié)果并同時(shí)降低操作系統(tǒng)的資源利用率,危害非常大。

一個(gè)經(jīng)典的死鎖問(wèn)題可以是這樣的:在一個(gè)計(jì)算機(jī)系統(tǒng)中,僅有一臺(tái)打印機(jī)A和一個(gè)輸入設(shè)備B時(shí),進(jìn)程P1正在占用輸入設(shè)備B,并且要求使用打印機(jī)A,但是打印機(jī)A此時(shí)被進(jìn)程P2占據(jù),P2又要求利用P1所占據(jù)的輸入設(shè)備B。兩個(gè)進(jìn)程都在不停地等待,不能繼續(xù)進(jìn)行,這時(shí)兩個(gè)進(jìn)程就會(huì)陷入死鎖狀態(tài)。

另一個(gè)著名的死鎖問(wèn)題稱為“哲學(xué)家進(jìn)餐問(wèn)題”,該問(wèn)題描述了這樣一種場(chǎng)景:有五位哲學(xué)家共用一張圓桌,分別坐在周圍的五張椅子上,在圓桌上有五只碗和五根筷子,他們的生活方式是交替地進(jìn)行思考和進(jìn)餐。該問(wèn)題有如下約束:哲學(xué)家必須拿到兩根筷子才能進(jìn)餐,只有進(jìn)餐結(jié)束之后才會(huì)放下已有的筷子,如果拿不到筷子就等別人放下筷子。一種典型的死鎖情況就是哲學(xué)家們每人都拿到了一根筷子,這樣他們就一直等待別人放下筷子但是又不放下自己的筷子,這樣就陷入僵持狀態(tài),誰(shuí)也無(wú)法進(jìn)餐。

如果系統(tǒng)資源充足,進(jìn)程的資源請(qǐng)求都能夠得到滿足,死鎖出現(xiàn)的可能性就很低,否則就會(huì)因爭(zhēng)奪有限的資源而陷入死鎖。另外,如果資源充足但是分配不當(dāng)或者進(jìn)程運(yùn)行推進(jìn)順序與速度不同,也可能產(chǎn)生死鎖。產(chǎn)生死鎖必須同時(shí)具備下面四個(gè)必要條件,只要其中一個(gè)條件不成立,死鎖就不會(huì)發(fā)生。

1.互斥條件:一個(gè)資源每次只能被一個(gè)進(jìn)程使用。

2.請(qǐng)求與保持條件:一個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放。

3.不剝奪條件:進(jìn)程已獲得的資源,在未使用完之前,不能強(qiáng)行剝奪。

4.循環(huán)等待條件:若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。

為了處理死鎖,一般會(huì)采用如下四種基本方法。

1.死鎖預(yù)防:通過(guò)設(shè)置一些限制條件,去破壞產(chǎn)生死鎖的四個(gè)必要條件之一即可。

2.死鎖避免:在資源分配過(guò)程中,使用某種方法避免系統(tǒng)進(jìn)入不安全的狀態(tài),從而避免發(fā)生死鎖。

3.死鎖檢測(cè):允許死鎖的發(fā)生,但是通過(guò)系統(tǒng)的檢測(cè)之后,采取一些措施,將死鎖清除掉。

4.解除死鎖:撤銷一些進(jìn)程,回收它們的資源,該方法與死鎖檢測(cè)配合使用。

(延伸閱讀作者:大連理工大學(xué)計(jì)算機(jī)學(xué)院教授 楊鑫)

責(zé)任編輯:張鵬輝

?
?
[ 資訊搜索 ]? [ 加入收藏 ]? [ 打印本文 ]? [ 違規(guī)舉報(bào) ]? [ 關(guān)閉窗口 ]

免責(zé)聲明:
本網(wǎng)站部分內(nèi)容來(lái)源于合作媒體、企業(yè)機(jī)構(gòu)、網(wǎng)友提供和互聯(lián)網(wǎng)的公開資料等,僅供參考。本網(wǎng)站對(duì)站內(nèi)所有資訊的內(nèi)容、觀點(diǎn)保持中立,不對(duì)內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。如果有侵權(quán)等問(wèn)題,請(qǐng)及時(shí)聯(lián)系我們,我們將在收到通知后第一時(shí)間妥善處理該部分內(nèi)容。



?
?

?
推薦圖文
推薦資訊
點(diǎn)擊排行
最新資訊
友情鏈接 >> 更多