作業系統之處理器管理筆記

2022-04-28 16:09:05 字數 6158 閱讀 2651

第三章處理器管理

本章考核知識點:1.多道程式設計 2.

程序 3.程序狀態 4.程序控制塊 5.

程序佇列 6.可再入程式 7.中斷及中斷響應 8.

中斷優先順序 9.程序排程

自學要求:通過本章學習應該掌握多道程式設計是如何提高計算機系統效率的;程序與程式有什麼區別;程序的基本狀態以及狀態變化;程序佇列及程序排程策略;中斷的作用。

重點是:多道程式設計;程序的定義和屬性;程序排程策略。

一、 多道程式設計(領會)

1、什麼是多道程式設計。

讓多個計算問題同時裝入乙個計算機系統的主儲存器並行執行,這種設計技術稱「多道程式設計」,這種計算機系統稱「多道程式設計系統」 或簡稱「多道系統」。

儲存保護:在多道程式設計的系統中,主儲存器中同時存放了多個作業的程式。為避免相互干擾,必須提供必要的手段使得在主儲存器中的各道程式只能訪問自己的區域。

這樣,每道程式執行時,都不會破壞其他各道的程式和資料。特別是當某道程式發生錯誤的時,也不至於影響其它的程式。

程式浮動:在多道程式設計系統中,對程式有一些特殊要求,也就是說,程式可以隨機地從主存的乙個區域移動到另乙個區域,程式被移動後仍絲毫不影響它的執行,這種技術稱為"程式浮動"。

在多道程式設計的系統中,有三點基本要求:

用"儲存保護"的方法保證各道程式互不侵犯;

用"程式浮動"技術讓程式能靈活地改變存放區域且能正確執行;

必須對資源按一定的策略分配和排程。

2、多道程式設計利用了系統與外圍裝置的並行工作能力,從而提高工作效率。具體表現為:

提高了處理器的利用率;

充分利用外圍裝置資源:計算機系統配置多種外圍裝置,採用多道程式設計並行工作時,可以將使用不同裝置的程式搭配在一起同時裝入主儲存器,使得系統中各外圍裝置經常處於忙碌狀態,系統資源被充分利用;

發揮了處理器與外圍裝置以及外圍裝置之間的並行工作能力;

從總體上說,採用多道程式設計技術後,可以有效地提高系統中資源的利用率,增加單位時間內的算題量,從而提高了吞吐率。

3、多道程式設計對算題量和算題時間的影響。 採用多道程式設計能改變系統資源的使用情況,提高系統效率。但是應注意以下兩個問題:

可能延長程式的執行時間;

並行工作道數與系統效率不成正比。從表面上看,增加並行工作道數就可提高系統效率,但實際上並行工作道數與系統效率是不成正比,因為並行的道數要根據系統配置的資源和使用者對資源的要求而定:

(1)主儲存器的大小限制了可同時裝入的程式數量;

(2)外圍裝置的數量也是乙個制約條件;

(3)多個程式同時要求使用同一資源的情況也會經常發生。

總之,多道程式設計能提高系統資源的使用效率,增加單位時間的算題量;但是對每個計算問題來說,從算題開始到全部完成所需要的時間可能延長,另外在確定並行工作道數時應綜合系統的資源配置和使用者對資源的要求。

二、 程序(領會)

1、 程序的定義:把乙個程式在乙個資料集上的一次執行稱為乙個"程序"。

2、 程序是由程式、資料集和程序控制塊三部分組成。

我們舉乙個例子,比如在有乙個使用者程式記事本),當它存放在磁碟上時,就是乙個程式,在windows作業系統下執行它時,就會在記憶體中建立乙個記事本程式的程序,而我們在記事本中編輯的當前文字就是這個程序的資料集,作業系統會為當前的程序設定乙個程序控制塊。如果我們再開啟乙個記事本程式的視窗,就會建立另乙個程序,此時執行的是同乙個程式,但存在兩個程序,第二個視窗中的編輯內容就是第二個程序的資料集。

3、 程序與程式的區別及關係。程式是靜止的,程序是動態的。程序包括程式和程式處理的物件(資料集),程序能得到程式處理的結果。

程序和程式並非一一對應的,乙個程式執行在不同的資料集上就構成了不同的程序。通常把程序分為「系統程序」和「使用者程序」兩大類,把完成作業系統功能的程序稱為系統程序,而完成使用者功能的程序則稱為使用者程序。

三、 程序狀態(領會)

1、 程序的三種基本狀態。通常,根據程序執行過程中不同時刻的狀態,可歸納為三種基本狀態:

等待態:等待某個事件的完成;

就緒態:等待系統分配處理器以便執行;

執行態:占有處理器正在執行。

2、程序的狀態變化

程序在執行中狀態會不斷地改變,每個程序在任何時刻總是處於上述三種基本狀態的某一種基本狀態,程序狀態之間轉換關係如下圖所示:

執行態→等待態往往是由於等待外設,等待主存等資源分配或等待人工干預而引起的。

等待態→就緒態則是等待的條件已滿足,只需分配到處理器後就能執行。

執行態→就緒態不是由於自身原因,而是由外界原因使執行狀態的程序讓出處理器,這時候就變成就緒態。例如時間片用完,或有更高優先順序的程序來搶占處理器等。

就緒態→執行態系統按某種策略選中就緒佇列中的乙個程序占用處理器,此時就變成了執行態。

程序有四個基本屬性:

多型性從誕生、執行,直至消滅。

多個不同的程序可以包括相同的程式

三種基本狀態它們之間可進行轉換

併發性併發執行的程序輪流占用處理器

四、程序控制塊(領會)

1、程序控制塊的基本內容。 通常程序控制塊包含四類資訊:

標誌資訊含唯一的程序名

說明資訊有程序狀態、等待原因、程序程式存放位置和程序資料存放位置

現場資訊包括通用、控制和程式狀態字暫存器的內容

管理資訊存放程式優先數和佇列指標

2、程序控制塊的作用

程序控制塊(process control block,簡稱pcb),是作業系統為程序分配的用於標誌程序,記錄各程序執**況的。程序控制塊是程序存在的標誌,它記錄了程序從建立到消亡動態變化的狀況,程序佇列實際也是程序控制塊的鏈結。作業系統利用程序控制塊對程序進行控制和管理。

程序控制塊的作用有:

(1)記錄程序的有關資訊,以便作業系統的程序排程程式對程序進行排程。這些資訊包括標誌資訊、說明資訊、現場資訊和管理資訊等;

(2)標誌程序的存在,程序控制塊是程序存在的唯一標誌

五、程序佇列(領會)

1、程序佇列的鏈結。

在多道程式設計的系統中往往會同時建立多個程序。在單處理器的情況下,每次只能讓乙個程序執行,其他的程序處於就緒狀態或等待狀態。為了便於管理,經常把處於相同狀態的程序鏈結在一起,稱"程序佇列",由於程序控制塊能標誌程序的存在和動態刻畫程序的特性,因此,程序佇列可以用程序控制塊的連線來形成。

鏈結的方式有兩種:單向鏈結和雙向鏈結。

2、程序基本佇列

就緒佇列:由若干就緒程序按一定次序鏈結起來的佇列。

等待佇列:把等待資源或等待某些事件的程序排列的佇列

3、程序的入隊和出隊。

出隊和入隊:當發生的某個事件使乙個程序的狀態發生變化時,這個程序就要退出所在的某個佇列而排入到另乙個佇列中去。

出隊:乙個程序從所在的佇列退出的操作稱為出隊

入隊:乙個程序排入到乙個指定的佇列的操作稱為入隊。

系統中負責程序入隊和出隊的工作稱為佇列管理。

無論單向鏈結還是雙向鏈結,解決入,出隊問題,都是首先找到該佇列的隊首指標,沿鏈找出要入隊的程序以及它要插入的位置,或找出要出隊的程序,然後修改本程序指標(入隊情況)和相鄰程序的有關指標值即可。

六、可再入程式(識記)

(1) 什麼是可再入程式。 乙個能被多個使用者同時呼叫的程式稱做"可再入"的程式。

(2) 可再入程式的性質。

可再入程式必須是純**,在執行時自身不改變;

乙個可再入程式要求呼叫者提供工作區,以保證程式以同樣方式為各使用者服務。

編譯程式和作業系統程式通常都是"可再入"程式,能同時被不同使用者呼叫而構成不同的程序。

七、中斷及中斷響應(領會)

1、中斷的定義。

乙個程序占有處理器執行時,由於自身或者外界的原因(出現了事件)使執行被打斷,讓作業系統處理所出現的事件,到適當的時候再讓被打斷的程序繼續執行,這個過程稱為"中斷"。

2、中斷的型別。

從中斷事件的性質出發,中斷可以分為兩大類:

強迫性中斷事件包括硬體故障中斷,程式性中斷,外部中斷和輸入輸出中斷等

自願性中斷事件是由正在執行的程序執行一條訪管指令用以請求系統呼叫而引起的中斷,這種中斷也稱為"訪管中斷"。

自願中斷的斷點是確定的,而強迫性中斷的斷點可能發生在任何位置。

3、中斷的響應和處理。

中斷響應 (硬體即中斷裝置操作)

處理器每執行一條指令後,硬體的中斷位置立即檢查有無中斷事件發生,若有中斷事件發生,則暫停現行程序的執行,而讓作業系統的中斷處理程式占用處理器,這一過程稱為"中斷響應"。

中斷響應過程中,中斷裝置要做以下三項工作:

是否有中斷事件發生

判別自願性中斷,只要檢查操作碼是否為訪管指令。

判別強迫性中斷,則要檢查中斷暫存器內容。若為0,則無中斷;若非0,則表示有中斷事件發生。

若有中斷發生,保護斷點資訊

每個程式都有乙個程式狀態字(psw)來反映本狀態的執行狀態,如基本狀態、中斷碼和中斷遮蔽位等內容。處理器設有乙個"程式狀態字暫存器"用來存放當前執行程式的psw。程式狀態字可分為當前psw、舊psw和新psw。

當出現中斷事件後,把被中斷程序的psw儲存為舊psw,即完成斷點資訊保護。

啟動作業系統的中斷處理程式工作

中斷裝置通過"交換psw"過程完成此項任務,即把出現的中斷事件存放到當前psw中斷碼位置,然後把該當前psw儲存為舊psw,再把作業系統中斷處理程式的新psw送到程式狀態字暫存器中,成為當前的psw。

中斷處理 (軟體即作業系統操作)

作業系統的中斷處理程式對中斷事件進行處理時,大致要做三方面的工作:

保護被中斷程序的現場資訊

把中斷時的通用暫存器,控制暫存器內容及舊psw儲存到被中斷程序的程序控制塊中。

分析中斷原因

根據舊psw的中斷碼可知發生該中斷的具體原因。

處理發生的中斷事件

一般只做一些簡單處理,在多數情況下把具體的處理交給其他程式模組去做。

八、 中斷優先順序和中斷遮蔽(識記)

1、中斷優先順序是硬體設計時確定的。中斷裝置按預定的順序來響應同時出現的中斷事件,這個預定的順序稱為"中斷優先順序"。中斷優先順序是按中斷事件的重要性和緊迫程度來確定的 ,是由硬體設計時固定下來的。

一般情況下,優先順序的高低順序依次為:硬體故障中斷、自願中斷、程式性中斷,外部中斷和輸入輸出中斷。

2、中斷的巢狀處理

3、中斷遮蔽的作用。中斷優先順序只是規定了中斷裝置響應同時出現的中斷的次序,當中斷裝置響應了某個中斷後中斷處理程式在進行處理時,中斷裝置也可能去響應另乙個中斷事件。因此會出現優先順序低的中斷事件的處理打斷優先順序高的中斷事件的處理,使得中斷事件的處理順序與響應順序不一致,而且會形成多重巢狀處理,使多現場保護、程式返回等工作變的複雜。

中斷遮蔽技術就是為了解決上述問題而提出的在乙個中斷處理沒有結束之前不響應其他中斷事件,或者只響應比當前級別高的中斷事件。於是,當中斷裝置檢查到有中斷事件後,便去檢視psw中中斷遮蔽標誌,如果沒有遮蔽就響應該中斷;否則,暫時不響應該中斷,待遮蔽標誌消除後再響應。自願中斷是不能遮蔽的。

九、 程序排程(領會)

1、程序排程的職責。按選定的程序排程演算法從就緒佇列中選擇乙個程序,讓它占用處理器。

2、選擇程序排程演算法的幾個準則:

提高處理器利用率

增大吞吐量

減少等待時間

縮短響應時間

3、程序排程的常用演算法:先來先服務、優先數法、輪轉法、分級排程。

先來先服務排程演算法該演算法按程序進入就緒佇列的先後次序選擇可以占用處理器的程序。

優先數排程演算法對每個程序確定乙個優先數,該演算法總是讓優先數最高的程序先使用處理器。對具有相同優先數的程序,再採用先來先服務的次序分配處理器。系統常以任務的緊迫性和系統效率等因素確定程序的優先數。

程序的優先數可以固定的,也可隨程序執行過程動態變化。 乙個高優先數的程序占用處理器後,系統處理該程序時有兩種方法,一是"非搶占式",另一種是"可搶占式"。前者是此程序占用處理器後一直執行到結束,除非本身主動讓出處理器,後者則是嚴格保證任何時刻總是讓優先數最高的程序在處理器上執行。

時間片輪轉排程法把規定程序一次使用處理器的最長時間稱為"時間片"。時間片輪轉排程演算法讓就緒程序按就緒的先後次序排成佇列,每次總選擇該佇列中第乙個程序占用處理器,但規定只能使用乙個時間片,如該程序尚未完成,則排入隊尾,等待下乙個供它使用的時間片。各個程序就這樣輪轉執行。

時間片輪轉演算法經常用於分時作業系統中。

分級排程演算法由系統設定多個就緒佇列,每個就緒佇列中的程序按時間片輪轉法占用處理器,這就是分級排程演算法。

4、程序的切換程序排程將從就緒佇列中另選乙個程序占用處理器,使乙個程序讓出處理器,由另乙個程序占用處理器的過程稱"程序切換"。

若有乙個程序從執行態變成等待態,或完成工作後就撤消,則必定會發生程序切換。若乙個程序從執行態或等待態變成就緒態,則不一定發生程序切換。

作業系統第三章處理器管理

第三章本章從多道程式設計出發,引入了程序的概念,程序的基本狀態和程序佇列等基本內容,同時對中斷系統進行了詳細介紹 在此基礎上,對程序排程策略進行了詳盡的敘述.本章是本節中比較重要的章節,由於程序的概念十分重要又相當抽象,讀者可以結合下面的講解深入理解本章的內容 第1節多道程式設計 一,重要知識點 要...

作業系統 筆記

第一章作業系統引論 什麼是作業系統?作業系統是所有軟體中最基礎 最核心的部分,是計算機使用者和計算機硬體之間的中介程式,它為使用者執行程式提供更方便 更有效的環境。從資源管理的角度看,作業系統對整個計算機系統內的所有硬體和軟體資源進行管理和排程,優化資源利用,協調系統內的各種活動,處理可能出現的種種...

作業系統之儲存器管理

p116 4.0.1 儲存器管理的目的和功能 儲存器管理的主要目的和功能如下 1.主儲存器的分配和管理 按使用者要求把適當的儲存空間分配給相應的作業。乙個有效的儲存分配機制,應在使用者請求時能作出快速的響應,分配相應的儲存空間 在使用者不再使用它時,應立即 以供其他使用者使用。為此,這個儲存分配機制...