java web 什么是臨界資源?
什么是臨界資源?關(guān)鍵資源是一次只允許一個(gè)進(jìn)程訪問的資源。關(guān)鍵資源的硬件包括打印機(jī)和磁帶機(jī),軟件包括消息緩沖隊(duì)列、變量、數(shù)組和緩沖區(qū)。為了共享這種資源,過程應(yīng)該是互斥的。在每個(gè)進(jìn)程中訪問關(guān)鍵資源的代碼稱
什么是臨界資源?
關(guān)鍵資源是一次只允許一個(gè)進(jìn)程訪問的資源。關(guān)鍵資源的硬件包括打印機(jī)和磁帶機(jī),軟件包括消息緩沖隊(duì)列、變量、數(shù)組和緩沖區(qū)。為了共享這種資源,過程應(yīng)該是互斥的。在每個(gè)進(jìn)程中訪問關(guān)鍵資源的代碼稱為critical section。顯然,如果能夠保證進(jìn)程互斥地進(jìn)入自己的關(guān)鍵領(lǐng)域,就可以實(shí)現(xiàn)對關(guān)鍵資源的互斥訪問。為此,您應(yīng)該在訪問每個(gè)關(guān)鍵區(qū)域之前對其進(jìn)行檢查。如果關(guān)鍵資源當(dāng)前未被訪問,則流程可以進(jìn)入關(guān)鍵區(qū)域訪問該資源,并設(shè)置訪問標(biāo)志;如果關(guān)鍵資源當(dāng)前正被流程訪問,則流程不能進(jìn)入關(guān)鍵區(qū)域。
臨界資源和臨界區(qū)什么意思?
我認(rèn)為關(guān)鍵資源應(yīng)該與關(guān)鍵領(lǐng)域一起理解:一次只有一個(gè)進(jìn)程可以訪問的資源稱為關(guān)鍵資源。那么我們?nèi)绾螀^(qū)分關(guān)鍵資源呢?我認(rèn)為這是通過臨界區(qū)的概念。關(guān)鍵區(qū)域:訪問每個(gè)線程中的關(guān)鍵資源的代碼稱為關(guān)鍵區(qū)域。一次只允許一個(gè)線程進(jìn)入關(guān)鍵區(qū)域,其他線程進(jìn)入后不允許進(jìn)入。這樣,關(guān)鍵區(qū)域就是一段互斥代碼。就像畫一個(gè)邊界一樣,臨界區(qū)和非臨界區(qū)之間也有一個(gè)邊界。我認(rèn)為這個(gè)術(shù)語擴(kuò)展到了關(guān)鍵資源。個(gè)人意見,也希望能指導(dǎo)。
臨界資源和臨界區(qū)什么意思?
1. 臨界區(qū)是指訪問共享資源(如共享設(shè)備或共享內(nèi)存)的程序段,這些共享資源不能被多個(gè)線程同時(shí)訪問。當(dāng)一個(gè)線程進(jìn)入臨界區(qū)時(shí),其他線程或進(jìn)程必須等待。必須在關(guān)鍵部分的入口和出口實(shí)施一些同步機(jī)制,以確保這些共享資源相互排斥。一種只能由一個(gè)線程訪問的設(shè)備,如打印機(jī)。
2. 關(guān)鍵資源:多道程序設(shè)計(jì)系統(tǒng)中有許多進(jìn)程,它們共享各種資源。但是,許多資源一次只能由一個(gè)進(jìn)程使用。一次只允許一個(gè)進(jìn)程使用的資源稱為關(guān)鍵資源。許多物理設(shè)備都是關(guān)鍵資源,如輸入設(shè)備、打印機(jī)、磁帶機(jī)等。進(jìn)入關(guān)鍵區(qū)域的進(jìn)程的調(diào)度原則是:(1)如果有多個(gè)進(jìn)程需要進(jìn)入空閑的關(guān)鍵區(qū)域,一次只允許一個(gè)進(jìn)程進(jìn)入。(2) 進(jìn)入臨界區(qū)的過程應(yīng)在有限的時(shí)間內(nèi)退出,以便其他過程能及時(shí)進(jìn)入自己的臨界區(qū)。(3) 在任何時(shí)候,關(guān)鍵區(qū)域中只能有一個(gè)進(jìn)程。(4) 如果進(jìn)程不能進(jìn)入自己的關(guān)鍵區(qū)域,就應(yīng)該放棄CPU,避免“忙”現(xiàn)象。擴(kuò)展數(shù)據(jù)1,關(guān)鍵區(qū)域問題,關(guān)鍵區(qū)域的出口不會檢測到線程是否已經(jīng)進(jìn)入。也就是說,它可以被調(diào)用到A線程的critical zone函數(shù)中,而B線程調(diào)用exit critical zone函數(shù)也是成功的。關(guān)鍵區(qū)域中的數(shù)據(jù)一次只能由一個(gè)進(jìn)程使用。當(dāng)一個(gè)進(jìn)程使用關(guān)鍵區(qū)域的數(shù)據(jù)時(shí),其他需要使用關(guān)鍵區(qū)域數(shù)據(jù)的進(jìn)程進(jìn)入等待狀態(tài)。2每個(gè)進(jìn)程都是互斥的,共享的資源稱為關(guān)鍵資源。關(guān)鍵資源的硬件包括打印機(jī)和磁帶機(jī),軟件包括消息緩沖隊(duì)列、變量、數(shù)組和緩沖區(qū)。為了共享這種資源,過程應(yīng)該是互斥的。
什么是臨界區(qū)和臨界資源?對臨界區(qū)管理的基本原則是什么?
關(guān)鍵區(qū)域:訪問每個(gè)進(jìn)程中關(guān)鍵資源的程序稱為關(guān)鍵區(qū)域。進(jìn)程對關(guān)鍵區(qū)域的訪問必須是相互排斥的。一次只允許一個(gè)進(jìn)程進(jìn)入關(guān)鍵區(qū)域,其他進(jìn)程可以等待。關(guān)鍵資源:指一次只允許一個(gè)進(jìn)程訪問的資源,包括硬件關(guān)鍵資源和軟件關(guān)鍵資源。關(guān)鍵區(qū)管理的基本原則是:①如果有多個(gè)進(jìn)程需要進(jìn)入空閑的關(guān)鍵區(qū),一次只能進(jìn)入一個(gè)進(jìn)程。
②在任何時(shí)候,關(guān)鍵區(qū)域中都不能有多個(gè)進(jìn)程。如果一個(gè)進(jìn)程進(jìn)入它自己的關(guān)鍵區(qū)域,那么所有其他試圖進(jìn)入該關(guān)鍵區(qū)域的進(jìn)程都必須等待。
③進(jìn)入關(guān)鍵區(qū)域的過程應(yīng)在有限的時(shí)間內(nèi)退出,以便其他過程能及時(shí)進(jìn)入自己的關(guān)鍵區(qū)域。
④如果進(jìn)程不能進(jìn)入自己的關(guān)鍵區(qū)域,應(yīng)放棄CPU,避免“忙”現(xiàn)象。