1. 程式人生 > >操作系統復習——進程管理

操作系統復習——進程管理

允許 加鎖 san 標識符 實體 暫時 行為 span 一段

1.  程序順序執行時的特征:順序性,封閉性,可再現性

2.  進程的六大特征:

   1.結構特征,通常的程序是不能並發執行的,我們會為之配置一進程控制塊,即PCB。程序段,數據,PCB構成了進程實體。

   2.動態性,進程的實質是進程實體的一次執行過程

   3.並發性,多個進程實體同存於內存中,且能在一段時間內同時運行

   4.獨立性 5.異步性 6.制約性

3.  進程的三種基本狀態:就緒狀態,運行狀態,阻塞狀態。

   1.進程的轉換圖

   技術分享圖片

   運行態:當一個進程在處理機上運行時,則稱該進程處於運行狀態。處於此狀態的進程的數目小於等於處理器的數目,對於單處理機系統,處於運行狀態的進程只有一個。

   就緒態:當一個進程獲得了除處理機以外的一切所需資源,一旦得到處理機即可運行,則稱此進程處於就緒狀態。就緒進程可以按多個優先級來劃分隊列。例如,當一個進程由於時間片用完而進入就緒狀態時,排入低優先級隊列;當進程由I/O操作完成而進入就緒狀態時,排入高優先級隊列。

   阻塞態:也稱為等待或睡眠狀態,一個進程正在等待某一事件發生(例如請求I/O而等待I/O完成等)而暫時停止運行,這時即使把處理機分配給進程也無法運行,故稱該進程處於阻塞狀態。進程的阻塞是進程自身的一種主動行為。

   不可能存在直接從阻塞態轉換到執行態。

   2.引起掛起狀態的原因:終端用戶的請求,父進程請求,負荷調節的需要,操作系統的需要。

   3.用於控制進程的原語有

    創建原語(Create):創建一個就緒狀態的進程,使進程從創建狀態變遷為就緒狀態。

    撤銷原語:使進程從執行狀態變遷為完成狀態。

    阻塞原語(Block):使進程從執行狀態變遷為阻塞狀態。

    喚醒原語(Wakeup):使進程從阻塞狀態變遷為就緒狀態。

    掛起原語(Suspend):將指定的進程或處於阻塞的進程掛起

4.  為了描述和控制進程的進行,系統為每個進程定義了一個數據結構——PCB(進程控制塊),PCB是進程存在的唯一標誌

   它包含進程標識符(內部標識符:每個進行唯一的一個數字標識符,外部標識符:創建者提供),處理機狀態,進程調度信息和進程控制信息。

5.  進程同步:

   1.有兩種形式的制約:間接性制約(同一個系統的進程需要共享著某種資源),直接性制約(源於進程間的合作)

   2.臨界資源:一次只能供一個進程訪問的資源。

   3.臨界區:把不允許多個並發進程交叉執行的一段程序稱為臨界區或臨界部分。當一個進程使用該臨界資源時,其他需要訪問該資源的進程必須阻塞,直到占用者釋放該資源。

   4.互斥:一組並發進程中的一個或多個程序段,因共享某一公有資源而導致它們必須以一個不允許交叉執行的單位執行。也就是說,不允許兩個以上的共享該資源的並發進程同時進入臨界區。

   5.信號量:本身是一個計數器,使用P,V兩個操作來實現計數的減與加,當計數不大於0時,則進程進入睡眠狀態,它用於為多個進程提供共享數據對象的訪問。

   6.互斥量:如果信號量只存在兩個狀態,那就不需要計數了,可以簡化為加鎖與解鎖兩個功能,這就是互斥量。

6.  實現進程同步的幾種方式:信號量,管程,消息傳遞。

   

操作系統復習——進程管理