作業系統之程序同步問題

2021-09-01 22:47:11 字數 862 閱讀 6073

程序同步的兩種形式的制約關係

間接相互制約關係(程序互斥) 程序-程序

直接相互制約關係(程序同步) 程序-資源-程序

此處的資源一般指(臨界資源:在一段時間內只允許乙個程序訪問的資源。臨界資源的訪問要求互斥的訪問。)

講到程序同步就不得不提生產者-消費者問題了,

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裝置等,致使在這些併發執行的程式之間形成相互制約的關係。對於像印表機 磁帶機這樣的臨界資源,必須保證多個程序對之只能互斥地訪問,由此,在這些程序間形成了源於對該類資源共享的所謂間接相互制約關係。為了保證...