進程同步機制及優缺點

來源:互聯網
上載者:User

1.訊號量機制:
一個訊號量只能置一次初值,以後只能對之進行p操作或v操作。
由此也可以看到,訊號量機制必須有公用記憶體,不能用於分布式作業系統,這是它最大的弱點。
2.自旋鎖:
旋鎖是為了保護共用資源提出的一種鎖機制。
調用者申請的資源如果被佔用,即自旋鎖被已經被別的執行單元保持,則調用者一直迴圈在那裡看是否該自旋鎖的保持著已經釋放了鎖
自旋鎖是一種比較低級的保護資料結構和程式碼片段的原始方式,可能會引起以下兩個問題;
(1)死結
(2)過多地佔用CPU資源
3.管程:
訊號量機制功能強大,但使用時對訊號量的操作分散,而且難以控制,讀寫和維護都很困難。因此後來又提出了一種集中式同步進程——管程。其基本思想是將共用變數和對它們的操作集中在一個模組中,作業系統或並發程式就由這樣的模組構成。這樣模組之間聯絡清晰,便於維護和修改,易於保證正確性。
4.會合:
進程直接進行相互作用
5.分布式系統:
由於在分布式作業系統中沒有公用記憶體,因此參數全為值參, 
而且不可為指標。

 

優缺點:
訊號量(Semaphore)及PV操作
優:PV操作能夠實現對臨界區的管理要求;實現簡單;允許使用它的代碼休眠,持有鎖的時間可相對較長。
缺:一個訊號量只能置一次初值,以後只能對之進行p操作或v操作。
由此也可以看到,訊號量機制必須有公用記憶體,不能用於分布式作業系統,這是它最大的弱點。訊號量機制功能強大,但使用時對訊號量的操作分散,而且難以控制,讀寫和維護都很困難。加重了程式員的編碼負擔;核心操作P-V分散在各使用者程式的代碼中,不易控制和管理;一旦錯誤,後果嚴重,且不易發現和糾正。
自旋鎖:
優:旋鎖是為了保護共用資源提出的一種鎖機制; 調用者申請的資源如果被佔用,即自旋鎖已經被別的執行單元保持,則調用者一直迴圈在那裡看是否該自旋鎖的保持者已經釋放了鎖; 低開銷;安全和高效;
缺:自旋鎖是一種比較低級的保護資料結構和程式碼片段的原始方式,可能會引起以下兩個問題;
(1)死結
(2)過多地佔用CPU資源
傳統自旋鎖由於無序競爭會導致“公平性”問題
管程:
優: 集中式同步進程——管程。其基本思想是將共用變數和對它們的操作集中在一個模組中,作業系統或並發程式就由這樣的模組構成。這樣模組之間聯絡清晰,便於維護和修改,易於保證正確性。
缺:如果一個分布式系統具有多個CPU,並且每個CPU擁有自己的私人記憶體,它們通過一個區域網路相連,那麼這些原語將失效。而管程在少數幾種程式設計語言之外又無法使用,並且,這些原語均未提供機器間的資訊交換方法。
會合:
進程直接進行相互作用
分布式系統:
訊息和rpc
由於在分布式作業系統中沒有公用記憶體,因此參數全為值參,  
而且不可為指標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.