1. 程式人生 > >操作系統基本原理

操作系統基本原理

用兩個 一個 程序 系統 消費者 硬件 同步與互斥 slc 存儲

技術分享圖片


操作系統用於管理系統的硬件、軟件和數據資源,控制程序的運行,是應用軟件與硬件之間的接口,也是人機之間的接口。操作系統的職能包括進程管理、存儲管理、文件管理、設備管理、作業管理等。

在進程管理中,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操作便是通過這樣的過程來協調幾個需要同步的進程的。

操作系統基本原理