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