【軟件測試】操作系統篇:第六章 進程及處理機管理

 

第六章 進程及處理機管理

1、進程的引入

1)進程調度屬於低級處理機管理,即確定系統中哪個進程將獲得CPU;而作業調度屬於高級處理機管理,即確定系統中哪些作業將獲得CPU

2)進程是一個具有一定獨立功能的程序關於某個數據集合的一次運行活動。

3)引入進程的意義是描述多道程序設計系統中程序的動態執行過程。

 

2、進程的定義及特徵

1)程序和進程的區別見教材153頁的表6-2

2)進程的五個基本特徵:動態性、併發性、獨立性、制約性、結構性;

3)進程與線程:線程是由進程進一步派生出來的一組代碼(指令組)的執行過程。

 

3、進程調度

1)進程的三個基本狀態及轉換

三個基本狀態是等待、執行和就緒,在一定的條件下,進程的狀態將發生轉換。

                           

2)進程調度

作業調度和進程調度的區別:

一個作業從進入系統到最後完成,一般至少要經歷兩級調度:作業調度和進程調度。

作業調度是宏觀上的高級調度,它的主要功能是根據一定的算法,從輸入井中選中若干個作業,分配必要的資源,如主存、外設等,爲它們建立初始狀態爲就緒的作業進程。

進程調度是微觀上的低級調度,它的主要功能是根據一定的算法將CPU分派給就緒隊列中的一個進程。一般的操作系統都必須有進程調度。

可見在多道系統中,作業調度與進程調度是相互配合來實現多道作業的並行執行的。兩者的關係可用下圖表示。

          

進程調度算法 主要有先來先服務(FCFS)、輪轉法、多級反饋輪轉法、優先數法。

3)進程控制塊(PCB)是進程存在的唯一標誌,它描述了進程的動態性。

 

4、進程通信

1)進程的同步與互斥

進程的同步與互斥是指進程在推進時的相互制約關係。

一般來說同步反映了進程之間的協作性質,往往指有幾個進程共同完成一個任務時在時間次序上的某種限制,進程相互之間各自的存在及作用,通過交換信息完成通信。如接力比賽中一組隊員使用接力棒等。

進程互斥體現了進程之間對資源的競爭關係,這時進程相互之間不一定清楚其它進程情況,往往指多個任務多個進程間的通訊制約,因而使用更廣泛。如打籃球時雙方掙搶籃板球等。

2)臨界區

一次僅允許一個進程使用的共享資源稱爲臨界資源,每個進程中訪問臨界資源的程序段稱爲臨界區。

3)原語

原語是不可中斷的過程。

1)加鎖/開鎖(LOCK/UNLOCK)原語

優點是實現互斥簡單;缺點是效率很低。

2)信號量(Semaphore)及PV操作

PV操作能夠實現對臨界區的管理要求。它由P操作原語和V操作原語組成,對信號量進行操作,具體定義如下:

PS):①將信號量S的值減1,即S=S-1

②如果S30,則該進程繼續執行;否則該進程置爲等待狀態,排入等待隊列。

VS):①將信號量S的值加1,即S=S+1

②如果S>0,則該進程繼續執行;否則釋放隊列中第一個等待信號量的進程。

信號量的數據結構爲一個值和一個指針,指針指向等待該信號量的下一個進程。信號量的值與相應資源的使用情況有關。當它的值大於0時,表示當前可用資源的數量;當它的值小於0時,其絕對值表示等待使用該資源的進程個數。注意信號量的值僅能由PV操作來改變。

一般來說,信號量S30時,S表示可用資源的數量。執行一次P操作意味着請求分配一個單位資源,因此S的值減1;當S<0時,表示已經沒有可用資源,請求者必須等待別的進程釋放該類資源,它才能運行下去。而執行一個V操作意味着釋放一個單位資源,因此S的值加1;若S0,表示有某些進程正在等待該資源,因此要喚醒一個等待狀態的進程,使之運行下去。

PV操作實現進程間的同步與互斥,應該注意以下四方面問題:

A)對每一個共享資源都要設立信號量。互斥時對一個共享資源設立一個信號量;同步時對一個共享資源可能要設立兩個或多個信號量,要視由幾個進程來使用該共享變量而定。

B)互斥時信號量的初值一般爲1;同步時至少有一個信號量的初值大於等於1

CPV操作一定要成對調用。互斥時在臨界區前後對同一信號量作PV操作;同步時則對不同的信號量作PV操作,PV操作的位置一定要正確。

D)對互斥和同步混合問題,PV操作可能會嵌套,一般同步的PV操作在外,互斥的PV操作在內。

3)消息緩衝通信原語

高級通信原語,用於一組信息發送(Send)與讀取(Read)。

 

5、死鎖

1)死鎖的概念

死鎖是兩個或兩個以上的進程中的每一個都在等待其中另一個進程釋放資源而被封鎖,它們都無法向前推進,稱這種現象爲死鎖現象。

 產生死鎖的原因是共享資源有限,多個進程對共享資源的競爭,而且操作不當。

2)產生死鎖的四個必要條件是資源互斥使用、保持和等待、非剝奪性、循環等待。

3)解決死鎖的方法

一般有死鎖的預防,即破壞產生死鎖的四個必要條件中的一個或多個,使系統絕不會進入死鎖狀態;死鎖的避免,即在資源動態分配的過程中使用某種辦法防止系統進人死鎖狀態;以及允許系統產生死鎖,然後使用檢測算法及時地發現並解除它。

 

CSDN博文地址:http://blog.csdn.net/lwlliang/archive/2011/03/01/6216721.aspx

官方博文地址:http://www.17core.com/blog/html/201103/204.html

發佈了65 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章