進程同步機制有幾種 請列舉幾種進程的同步機制,并比較其優(yōu)缺點?
請列舉幾種進程的同步機制,并比較其優(yōu)缺點?信號量只能在初始值設(shè)置一次,然后只能對其進行P或V操作。也可以看出,信號量機制必須有公共內(nèi)存,不能在分布式操作系統(tǒng)中使用,這是其最大的弱點。信號量機制功能強大
請列舉幾種進程的同步機制,并比較其優(yōu)缺點?
信號量只能在初始值設(shè)置一次,然后只能對其進行P或V操作。
也可以看出,信號量機制必須有公共內(nèi)存,不能在分布式操作系統(tǒng)中使用,這是其最大的弱點。信號量機制功能強大,但在使用時很難控制信號的操作,讀寫和維護都比較困難。增加了程序員的編碼負擔;核心操作P-V分散在每個用戶程序的代碼中,不易控制和管理;一旦出錯,后果嚴重,不易發(fā)現(xiàn)和糾正。(b) 自旋鎖:自旋鎖是一種用來保護共享資源的鎖機制。如果調(diào)用者應用的資源被占用,也就是說,自旋鎖已經(jīng)被其他執(zhí)行單元維護,調(diào)用者將在那里循環(huán)以查看鎖是否已經(jīng)被釋放。自旋鎖是一種保護數(shù)據(jù)結(jié)構(gòu)和代碼片段的相對低級的方法,它可能會導致以下兩個問題
1。死鎖
2。過度使用CPU資源傳統(tǒng)的自旋鎖會導致無序競爭導致公平(c)管理:信號量機制強大,但在使用時很難控制信號的操作,讀寫和維護都比較困難。因此,后來提出了一個集中式的同步過程pipe process。其基本思想是將共享變量及其操作集中在一個模塊中,操作系統(tǒng)或并發(fā)程序就是由這些模塊組成的。這樣,模塊之間的連接清晰,易于維護和修改,并且易于保證正確性。(d) 收斂:進程直接交互(E)分布式系統(tǒng):由于分布式操作系統(tǒng)中沒有公共內(nèi)存,所以參數(shù)都是值參數(shù),不能是指針。(f) 原語是一個不間斷的過程。
簡述什么是線程同步機制和臨界區(qū)管理?
關(guān)鍵區(qū)的基本概念:共享資源的串行讀寫可以通過原子手段在同一進程的多個線程之間實現(xiàn)。臨界區(qū)相關(guān)函數(shù)uuSection Cs::initializercriticalsection:entercriticalsection:LeaveCriticalSection:delete criticalsection&例1:臨界區(qū)輸出結(jié)果的基本使用方法,無區(qū)域同步):輸出結(jié)果(關(guān)鍵區(qū)域同步):實例2:使用關(guān)鍵區(qū)域?qū)ο髣?chuàng)建自動鎖定criticalsection:封裝windows CriticaluSection用戶對象autolock:封裝criticalsection,它在進入作用域時自動鎖定,離開作用域時自動解鎖
在多通道編程環(huán)境中,由于資源共享和進程協(xié)作,程序并發(fā)執(zhí)行時,一個系統(tǒng)中的過程之間可能存在兩種形式的約束關(guān)系:(1)間接相互約束關(guān)系。系統(tǒng)中的同一進程通常共享一些資源。(2) 直接的相互制約關(guān)系主要源于過程之間的合作。因此,在使用系統(tǒng)中的關(guān)鍵資源時,各流程應該采取互斥的方式來實現(xiàn)資源的共享。為了實現(xiàn)進程對自身關(guān)鍵區(qū)域的互斥訪問,可以采用軟件方法,但更重要的是,系統(tǒng)中設(shè)置了專門的同步機制來協(xié)調(diào)各個進程的運行。所有的同步機制都應該遵循以下四個原則:(1)空閑接納:因為當沒有進程處于臨界區(qū)時,表示臨界資源處于空閑狀態(tài),請求進入臨界區(qū)的進程應該被允許立即進入自己的臨界區(qū),從而有效利用關(guān)鍵資源。(2) 忙等待:因為當現(xiàn)有進程進入關(guān)鍵區(qū)域時,它表示正在訪問關(guān)鍵資源,因此其他試圖進入關(guān)鍵區(qū)域的進程必須等待,以確保對關(guān)鍵資源的互斥訪問。(3) 有限等待:因為對于需要訪問的關(guān)鍵資源的過程,必須確保它們能夠在有限的時間內(nèi)進入其關(guān)鍵區(qū)域,以避免陷入“死”狀態(tài)。(4) 允許等待:因為當進程不能進入自己的關(guān)鍵區(qū)域時,應該立即釋放處理器,以避免進程進入“忙”狀態(tài)