程序同步的兩種形式的制約關係
間接相互制約關係(程序互斥) 程序-程序
直接相互制約關係(程序同步) 程序-資源-程序
此處的資源一般指(臨界資源:在一段時間內只允許乙個程序訪問的資源。臨界資源的訪問要求互斥的訪問。)
講到程序同步就不得不提生產者-消費者問題了,
int in=0,out=0;-----兩個指標,輸入輸出
item buffer[n];
semaphore mutex=1,empty=n,full=0;
利用互斥訊號量mutex,利用訊號量empty和full分別表示緩衝池空和緩衝池滿的數量
void producer()while(ture);
}void consumer()while(ture);
}void main()
再向下進行,利用and訊號量解決上述問題:
int i=0,out=0;
item buffer[n];
semaphore mutex=1,empty=n,full=0;
void producer()while (true);
}void consumer()while(true);
}利用記錄型訊號量解決哲學家進餐問題
semaphore chopstick[5]=;
dowhile(ture);
利用訊號量解決讀者寫者問題
int rn; --------最多隻允許rn個讀者同時讀,
semaphore l=rn,mx=1;
void reader()while(true);
}void writer()
dowhile(true);
}void main()
作業系統程序同步問題
一 臨界區 互相協作的程序之間有共享的資料,於是這裡就有乙個併發情況下,如何確保有序操作這些資料 維護一致性的問題,即程序同步。為了解決合作程序之間的競爭條件,引入臨界區問題模型。臨界區是包含訪問共享資料指令的相關 段,也是多個程序都包含的 段,在這段 中可能會進行更新資料表 交換變數等操作。從資料...
作業系統 程序同步問題
1 桌上有一空盤,允許存放乙隻水果。爸爸可向盤中放蘋果也可向盤中放桔子,兒子專等吃盤中的桔子,女兒專等吃盤中的蘋果。規定當盤空時一次只能放乙隻水果供吃者取用,請用p v原語實現爸爸 兒子 女兒三個併發程序的同步。semaphore s 1,sa 0,so 0 main father son daug...
作業系統之程序同步
一 程序同步的基本概念 間接相互制約關係 多個程式在併發執行時,由於共享系統資源,如cpu i o裝置等,致使在這些併發執行的程式之間形成相互制約的關係。對於像印表機 磁帶機這樣的臨界資源,必須保證多個程序對之只能互斥地訪問,由此,在這些程序間形成了源於對該類資源共享的所謂間接相互制約關係。為了保證...