作業系統 程序管理之程序同步

2021-09-26 18:28:11 字數 738 閱讀 5247

程序同步:由程序非同步所匯出的概念。由於多道程式設計的非同步性,導致記憶體中的程序時走時停,以不可預知的速度前進;但某些情況下又要求固定某些程序的先後順序。所謂程序同步就是指程序之間的直接制約關係,具體體現在程序的執行順序上。

程序互斥:是由於程序之間均需要訪問同一臨界資源,而臨界資源同一時間又只能允許乙個程序訪問,剩餘程序只能阻塞。

為了禁止兩個程序同時進入臨界區,同步機制需遵守以下準則:

空閒讓進

忙則等待

有限等待

讓權等待

單標誌法

雙標誌先檢查

雙標誌後檢查

peterson法

訊號量機制只能被兩個標準的原語wait(s)和signal(s)訪問,也稱p、v操作。

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可緩衝區的緩衝池,生產者程序需要將所生產 的產品放到乙個緩衝區中,消費者程序可以從緩衝區取走產品消費。單兩者併發執行時就可能出差錯 有五個哲學家,他們的生活方式是交替地進...