天天看點

管程的基本概念

為什麼會出現管程?

    信号量機制的不足:程式編寫困難、易出錯

解決:

  • Brinch Hansen(1973)
  • Boare(1974)

方案:

  • 在程式設計語言中引入管程成分
  • 一種進階同步機制

管程的定義:

        是一個特殊的子產品

        有一個名字

        有關于共享資源的資料結構及在其上操作的一組過程組成

程序與管理

        程序隻能通過調用管程中的過程來間接的通路管程中的資料結構

管程作為一種同步機制,要解決兩個問題:

互斥:

        管程是互斥進入的

                    ——為了保證管程中的資料結構的資料完整性

            管程的互斥性是由編譯器負責保證的

同步:

        管程中設定條件變量及等待/喚醒操作以解決同步問題。

管程的實作有兩種途徑:

        直接構造——>效率高

  • 信号量及管程的不足
  • 不适用多處理器情況

繼續閱讀