天天看點

作業系統基本原理

作業系統基本原理

作業系統用于管理系統的硬體、軟體和資料資源,控制程式的運作,是應用軟體與硬體之間的接口,也是人機之間的接口。作業系統的職能包括程序管理、存儲管理、檔案管理、裝置管理、作業管理等。

在程序管理中,PV操作在處理程序的同步與互斥問題方面非常重要,當多個程序需要同時通路共享資源時會用到。PV是用荷蘭語表示的簡寫,P表示通過,V表示釋放,據說這是計算機領域為數不多的非英語簡寫。

作業系統基本原理

PV操作由P操作原語和V操作原語組成,原語也叫原子操作,表示不可中斷的過程,這兩個原語要操作信号量S。

P操作将S的值減1,如果S<0,則将該程序置為等待狀态并加入程序隊列中,否則繼續執行。

V操作将S的值加1,如果S<=0則喚醒等待隊列中的第一個程序,否則繼續執行。

接下來使用單緩存區生産者、消費者問題來描述PV操作的運用,由于隻有一個單緩存區,生産速度過快會使緩存區溢出,而消費速度過快會從緩存區拿到空值,如圖所示,在加入PV操作後就能解決這些問題

作業系統基本原理

有生産者、消費者兩個程序,使用兩個PV操作,S1的初值為1,S2的初值為0。生産者第一次執行,S1=0,送産品到緩存區,S2=1;第二次執行時S1=-1,生産者程序轉為等待狀态并加入程序隊列。對于消費者程序,第一次執行過程中S2=0,從緩存區取産品,S1=0,消費産品,由于S1=0,生産者程序便被喚醒了,此時正好緩存區的産品被消費完。同理,如果消費者程序先執行,也照樣能保證兩個程序的配合無間。

PV操作便是通過這樣的過程來協調幾個需要同步的程序的。