作業系統 讀者 寫者問題

2021-09-29 04:48:49 字數 700 閱讀 9514

讀者間可以同時訪問資源

任一寫者必須與其他寫者或者讀者互斥訪問共享資源

分析:

寫者與任一程序互斥訪問共享資源

讀者互斥訪問readcount變數

1申請對檔案的使用權p(wmutex)

2寫檔案

3釋放對檔案的使用權v(wmutex)

正在讀的讀者個數readcount初=0

1第乙個讀者來

申請對檔案的使用權-------實現讀者寫者對檔案資源的互斥

p(wmutex)

2第二個讀者來

申請對rc**段的使用權-------------實現讀者和讀者對rc**段的互斥

p(rmutex)//申請對rc**段的使用權

if(rc==0)elseelse

生產者引入empty mutex 消費者引入full mutex

思想:多類資源一起分配,一起釋放,乙個不滿足,全部分配

解決p操作順序不當,可能死鎖

eg.sp(empty,mutex) sv(mutex,full)

讀者寫者問題 作業系統

動機 共享資料的訪問 兩種型別使用者 讀者 不需要修改資料 寫者 讀取和修改資料 問題的約束 允許同一時間有多個讀者,但在任何時候只有乙個寫者 當沒有寫者是讀者才能訪問資料 當沒有讀者和寫者時,寫者才能訪問資料 在任何時候只有乙個執行緒能操作共享變數 多個併發程序的資料集共享 rcount 有多少個...

作業系統 讀者寫者問題

乙個資料檔案或記錄可以被多個程序共享。唯讀的程序為 reader程序 其他程序為 writer程序 允許多個物件同時讀乙個共享物件,但是不允許乙個writer程序和其他reader程序同時共享物件。使用記錄性訊號量解決讀者與寫者問題 互斥訊號量wmutex 實現reader與writer程序間在讀或...

作業系統 讀者寫者問題

有兩組併發程序 讀者和寫者,共享乙個檔案f 讀者可以同時讀取檔案 讀者和寫者不能同時對檔案進行操作 兩個讀者也不能同時對檔案進行操作 讀者優先模型 讀者不釋放寫者的臨界區資源,寫者就不能進行操作 int readcount 0 讀程序計數 semaphore writeblock,mutex 訊號量...