同步的機制(一)

同步與互斥的定義:

同步:如果多個(包括2個)進程間存在時序的關係,需要協同工作完成一項任務,則稱爲同步;

互斥:如果他們不滿足協同的條件,而只是因爲共享具有排他性的資源時所產生的關係,則成爲互斥;


信號量機制(Semaphore)

Semaphore  S(信號量)

Operation P(來自荷蘭語proberen 意爲test有時也表達爲wait())

Operation V (來自荷蘭語,verhogen,意爲increment)有時也表達爲single()


S 表示指示共享資源的可用數量,P原語可以減少S計數,V原語增加S的計數。

當某個進程想進入共享區的時候,首先要執行P操作;同理,想退出共享區的時候執行V操作。PV操作都屬於原子操作(Atomic Operations),意味着他們的執行過程是不允許被中斷的。




Mutex機制

Mutual(共同的) Exclusion的縮寫,其釋義爲互斥體

根據計算機領域的觀點,如果資源允許多個對象同時訪問,稱爲Counting Semaphores;而對於只允許取值0和1(locked/unlocked)的Semaphore,則叫做Binary Seamphore;

或者可以認爲與本節的mutex具有相同的性質。


管程機制(Monitor)

管程機制實際上是對Semaphore機制的延伸和改善,

管程(Monitor)是可以被多個進程/線程安全訪問的對象(object)或者是模塊(module)

管程中的方法都是受mutual exclusion保護的,意味着同一時刻只允許有一個訪問者使用它們。

管程還具有 安全性、互斥性、共享性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章