訊號量
p操作,v操作
解決臨界問題的原方法,實現對共享變數操作的原子性
1、整型訊號量
表示資源數目的整形量s
wait(s)
signal(s)
未遵循「讓權等待」
使程序處於「忙等」狀態
2、記錄型訊號量
不存在·「忙等」現象
代表資源數目的整型變數valuedai
程序鍊錶l
wait操作
s.value<0,該資源已分配完畢
呼叫block原語,進行自我阻塞
遵循了「讓權等待」的準則
signal操作,表示程序釋放乙個資源,若加1後仍然是s.value<=0,表示在s.l中仍有等待該資源的程序被阻塞,因此還需要呼叫wakeup原語
3、利用訊號量實現同步
s為實現程序p1,p2同步的·公共訊號量
p2要用p1的結果
所以,只有x執行完,y語句才能執行
當程序p1中x先執行完
執行v操作,把p2從阻塞佇列放回就緒佇列
當p2得到處理機時,就繼續執行操作
4、利用訊號量實現程序同步
s為實現程序p1p2互斥的訊號量,
每次只允許乙個程序進入臨界區,s的初值為1
把臨界區至於p(s)和v(s)之間
可實現兩個程序對臨界資源的訪問
互斥是不同程序對同一訊號量的pv操作
要用 前面p一下這個資源
提供 後面v一下這個資源
緊夾使用互斥的那個資源,中間不能有其他冗餘**
5、使用訊號量實現前驅關係
semaphore a1=a2=b1=b2=c=d=e=0;//初始化訊號量
s1()
s2()
s3()
s4()
s5()
s6()
6.分析程序同步和互斥問題的方法步驟
(1)關係分析
找出程序數,分析他們之間的同步和互斥關係
(2)整理思路
根據程序的操作流程確p操作和v操作的大致順序
(3)設定訊號量
設定訊號量,確定初值,完善整理
作業系統 程序同步
臨界資源 critical resouce 臨界區 critical section 硬體同步機制 訊號量機制 訊號量的應用 管程3使用多道批處理系統不僅能有效的改善資源的利用率,還可以顯著地提高系統的吞吐量,但同時會使系統變得更加複雜,會使程式的執行結果存在不確定性。所以必須引入程序同步機制從而保...
作業系統 程序同步
引入程序 提高了資源的利用率和系統的吞吐量 程序的非同步性 會給系統造成混亂 程序同步基本概念 1,兩種形式的制約關係 a 間接相互制約 ab兩程序爭用一台印表機 b 直接相互制約 a程序放資料 緩衝區 b程序從緩衝區取資料 2,臨界資源 硬體臨界資源 軟體臨界資源 印表機,磁帶機,緩衝區。3,臨界...
作業系統 程序同步
ipc.件 include include include include include include include define bufsz 256 建立或獲取 ipc 的一組函式的原型說明 int get ipc id char proc file,key t key char set s...