什么是操作系統(tǒng) 同步機制應(yīng)遵循哪些基本準(zhǔn)則?為什么?
同步機制應(yīng)遵循哪些基本準(zhǔn)則?為什么?在多道程序設(shè)計環(huán)境中,當(dāng)程序同時執(zhí)行時,由于資源共享和進(jìn)程協(xié)作,同一系統(tǒng)中進(jìn)程之間可能存在以下兩種形式的約束:(1)間接相互約束。同一系統(tǒng)中的進(jìn)程通常共享某些資源。
同步機制應(yīng)遵循哪些基本準(zhǔn)則?為什么?
在多道程序設(shè)計環(huán)境中,當(dāng)程序同時執(zhí)行時,由于資源共享和進(jìn)程協(xié)作,同一系統(tǒng)中進(jìn)程之間可能存在以下兩種形式的約束:(1)間接相互約束。同一系統(tǒng)中的進(jìn)程通常共享某些資源。(2) 兩者之間存在著直接的相互制約關(guān)系,這種制約關(guān)系主要來源于過程之間的合作。因此,在使用系統(tǒng)中的關(guān)鍵資源時,各進(jìn)程應(yīng)該相互排斥,以共享資源。為了實現(xiàn)進(jìn)程互斥進(jìn)入自己的關(guān)鍵區(qū)域,我們可以采用軟件的方法,但更多的時候是在系統(tǒng)中設(shè)置一種特殊的同步機制來協(xié)調(diào)每個進(jìn)程的運行。所有的同步機制都應(yīng)該遵循以下四個原則:(1)空閑接納:因為當(dāng)沒有進(jìn)程在關(guān)鍵區(qū)域時,表示關(guān)鍵資源處于空閑狀態(tài)。一個請求進(jìn)入關(guān)鍵區(qū)域的進(jìn)程應(yīng)該被允許立即進(jìn)入它自己的關(guān)鍵區(qū)域,以便有效地利用關(guān)鍵資源。(2) 忙時等待:因為當(dāng)現(xiàn)有進(jìn)程進(jìn)入關(guān)鍵區(qū)域時,它表示正在訪問關(guān)鍵資源,因此其他試圖進(jìn)入關(guān)鍵區(qū)域的進(jìn)程必須等待,以確保對關(guān)鍵資源的互斥訪問。(3) 有限等待:因為請求訪問關(guān)鍵資源的進(jìn)程應(yīng)該能夠在有限的時間內(nèi)進(jìn)入自己的關(guān)鍵區(qū)域,以免陷入“死等待”狀態(tài)。(4) 讓正確的人等待:因為,當(dāng)流程無法進(jìn)入自己的關(guān)鍵區(qū)域時,它應(yīng)該立即釋放處理器,以避免進(jìn)程陷入“忙碌和等待”狀態(tài)
四個同步是指什么?
!]當(dāng)沒有進(jìn)程處于關(guān)鍵區(qū)域時相應(yīng)的關(guān)鍵資源處于空閑狀態(tài)。因此,請求進(jìn)入關(guān)鍵區(qū)域的流程可以被允許立即進(jìn)入自己的關(guān)鍵區(qū)域,從而有效地利用關(guān)鍵資源。(2) 當(dāng)一個進(jìn)程進(jìn)入它自己的關(guān)鍵區(qū)域時,意味著相應(yīng)的關(guān)鍵資源正在被訪問。因此,所有其他試圖進(jìn)入關(guān)鍵區(qū)域的進(jìn)程都必須等待,以確保這些進(jìn)程訪問關(guān)鍵資源是互斥的。(3) 有限等待一個請求訪問關(guān)鍵資源的進(jìn)程,應(yīng)該確保該進(jìn)程能夠在有限的時間內(nèi)進(jìn)入自己的關(guān)鍵區(qū)域,以免陷入“死等待”狀態(tài)。(4) 當(dāng)進(jìn)程不能進(jìn)入自己的關(guān)鍵區(qū)域時,應(yīng)立即釋放處理器,避免進(jìn)程陷入“忙等待”狀態(tài)。