重新整理作業系統概念系類 死鎖

2022-03-02 03:12:39 字數 1378 閱讀 7723

簡單介紹一下死鎖,以及解決死鎖的辦法。

死鎖發生的必要條件

1.互斥條件:只有對必須互斥使用的資源的爭奪才會導致死鎖,記憶體、揚聲器是不會導致死鎖的。

2.程序所獲取的資源在未使用完成之前,不能其他程序搶奪。

3.程序已經保持了至少乙個資源,但又提出新的資源請求,而該資源又被其他程序占有,此時請求程序被阻塞,但是自己的資源又不會被釋放。

發生死鎖一定是迴圈等待,迴圈等待不一定死鎖,比如說有10個資源,各剩下乙個,兩個程序分別占有3個資源,都還需要兩個資源就可以執行,那麼這時候誰都不放手就迴圈等待了。

但是如果迴圈等待,出現一種情況,就是其他程序占有的3個資源釋放了,那麼就可以繼續執行了。

其實說了這麼多就是這樣子:

兩個程序必須互相占有乙個資源,然後都在等待對方釋放。

預防死鎖

預防死鎖就是破壞死鎖產生的必要條件。

1.解決互斥條件,把互斥資源改成共享資源,如印表機,有兩個程序他們要使用印表機可以另外建立乙個程序專門來管理印表機,其他程序要想列印就得請求這個印表機管理程序。

2.破壞不剝奪條件,程序所獲取的資源在未使用完之前,不能被其他程序強行奪走,只能主動釋放。

3.破壞請求和保持條件,程序已經至少有乙個資源,然後還請求其他資源,然後新請求的資源又請求不到。

4.破壞迴圈等待條件

避免死鎖(銀行家演算法)

死鎖的檢測和解除

死鎖檢查:

死鎖解除:

死鎖檢查和解除結

重新整理作業系統概念系類 程序互斥

什麼是程序互斥呢?這其實是乙個資源利用問題。資源共享方式,有兩種一種是互斥共享一種是同時共享。這裡再次解釋一下,同時共享是巨集觀的,微觀可能不是同時,比如讀取檔案。乙個時間段內只允許乙個程序使用的資源稱為臨界資源,比如說硬體上攝像頭,還有變數 資料 記憶體緩衝區等都可能屬於臨界資源。對臨界資源的訪問...

重新整理作業系統概念系類 訊號量

簡單介紹一下訊號量。訊號量有兩種一種整型型號量,另一種記錄型訊號量。這個可以用來解決程序互斥,前面提及到的程序互斥沒有實現原則 讓權等待。讓權等待是這樣子的,比如說我這個程序要執行,然後發現資源不足,那麼就應該主動進入到阻塞態,而不是說等待時間片的執行完畢。使用者程序可以通過使用作業系統提供的一對原...

作業系統概念系類 作業系統特徵

作業系統有什麼特徵呢?1.併發 2.共享 3.虛擬 4.非同步 併發併發 指兩個或多個事件在同一時間間隔內發生。這些事件巨集觀上是同時發生的,但是微觀上是交替發生的。這時候就是有人蒙了?舉個例子。巨集觀上 比如說有10件事情,我同時開始做,10分鐘後他們全部完成了。微觀上是什麼呢?做這些事情的時候,...