程序同步:由程序非同步所匯出的概念。由於多道程式設計的非同步性,導致記憶體中的程序時走時停,以不可預知的速度前進;但某些情況下又要求固定某些程序的先後順序。所謂程序同步就是指程序之間的直接制約關係,具體體現在程序的執行順序上。
程序互斥:是由於程序之間均需要訪問同一臨界資源,而臨界資源同一時間又只能允許乙個程序訪問,剩餘程序只能阻塞。
為了禁止兩個程序同時進入臨界區,同步機制需遵守以下準則:
空閒讓進忙則等待
有限等待
讓權等待
單標誌法訊號量機制只能被兩個標準的原語wait(s)和signal(s)訪問,也稱p、v操作。雙標誌先檢查
雙標誌後檢查
peterson法
wait
(s)signal
(s)
此時p操作當系統資源不足時就會不停嘗試,只能等待其他程序釋放資源;因此違背了讓權等待。
typedef
struct
semaphore;
wait
(s)}
signal
(s)}
用訊號量實現互斥,semaphore mutex=1;
用訊號量實現同步,semophore mutex=0;
用資訊量實現前驅,設定多個同步資訊量。
作業系統專欄 程序管理之程序同步
首先我們來引入乙個著名的生產者與消費者問題,來說明為什麼需要程序間的同步吧。當生產者,生產出東西投入緩衝區的時候,進行 1,當消費者從緩衝區取出的時候,進行 1。然後來簡要的說一下,1 1,到底是怎麼進行的。首先我們明白一點,緩衝是在cache上的,當我們操作緩衝區的時候,實際上是這三個步驟 1 r...
作業系統之程序同步
一 程序同步的基本概念 間接相互制約關係 多個程式在併發執行時,由於共享系統資源,如cpu i o裝置等,致使在這些併發執行的程式之間形成相互制約的關係。對於像印表機 磁帶機這樣的臨界資源,必須保證多個程序對之只能互斥地訪問,由此,在這些程序間形成了源於對該類資源共享的所謂間接相互制約關係。為了保證...
作業系統原理 03 程序管理之程序同步
有一群生產者程序在生產產品,並將這些產品提供給消費者程序進行消費,生產者程序和消費者 程序可以併發執行,在兩者之間設定了乙個具有n可緩衝區的緩衝池,生產者程序需要將所生產 的產品放到乙個緩衝區中,消費者程序可以從緩衝區取走產品消費。單兩者併發執行時就可能出差錯 有五個哲學家,他們的生活方式是交替地進...