處理器及其調度 1. 處理器 用於執行指令對數據進行加工處理。 具有的機制: 寄存器:寄存器有多種,主要的作用是構成處理器的工作現場 指令系統 非特權指令 特權指令:操作系統核心程式使用的指令 處理器狀態及切換 處理器狀態的分類:管理狀態(管態)、用戶狀態(目態) Intel Pentium 的處理 ...
處理器及其調度
-
處理器
用於執行指令對數據進行加工處理。
具有的機制:
-
寄存器:寄存器有多種,主要的作用是構成處理器的工作現場
-
指令系統
- 非特權指令
- 特權指令:操作系統核心程式使用的指令
-
處理器狀態及切換
- 處理器狀態的分類:管理狀態(管態)、用戶狀態(目態)
- Intel Pentium 的處理器狀態
- 0級:操作系統內核級
- 1級:系統調用處理程式級
- 2級:共用庫過程級(即可讀不可寫)
- 3級:用戶程式級
- 處理器之間的狀態切換
- 目態到管態:執行系統調用,請求操作系統服務。或 中斷事件的產生
- 管態到目態:使用一條特權指令,“載入程式狀態字(Load PSW,LPSW)”
-
程式狀態字寄存器
處理器的工作狀態記錄在程式狀態字寄存器中
-
程式的基本狀態:
- 程式計數器指明的下一條執行的指令地址
- 條件碼:表示指令執行的結果狀態
- 處理器狀態位:指明當前處理器的狀態,管態或目態、運行或等待
-
-
中斷碼:保存程式執行時當前發生的中斷事件
- 中斷屏蔽位:指明程式執行中發生中斷事件時,是否響應出現的中斷事件
-
-
中斷
-
概念:
- 中斷:指程式執行過程中,當發生某個事件時,中止cpu上現行程式的運行,引出處理該事件的程式執行過程
- 中斷源:引起中斷的事件
-
中斷源分類
- 按照中斷事件的性質和激活手段分類
- 強迫性中斷事件
- 自願性中斷事件
- 按照中斷信號的來源對中斷源分類
- 外中斷(中斷):來自處理器和主存之外的中斷
- 內中斷(異常):來自處理器和主存的中斷
- 硬中斷和軟中斷
- 硬中斷:由硬體設施產生的終端信號
- 軟中斷:利用軟體模擬產生的中斷信號,用於實現內核與進程或進程與進程之間的通信
- 按照中斷事件的性質和激活手段分類
-
中斷處理
所有電腦都採用硬體和軟體結合的方式實現中斷處理。硬體發現中斷源並產生中斷信號,硬體包括中斷邏輯線路和中斷寄存器
- 硬體(中斷裝置)
- 發現中斷源,響應中斷請求
- 保護現場。將運行程式中斷點在處理器中的某些寄存器的現場信息存放與記憶體儲器
- 啟動處理中斷事件的程式
- 軟體(中斷處理程式)
- 識別各個中斷源,分析產生中斷的原因
- 處理髮生的中斷時間
- 中斷返回
- 中斷處理程式入口地址的尋找
- 主存儲器設置向量地址表
- 表中存儲單元的地址對應向量地址
- 表中存儲單元存儲入口地址
- 硬體(中斷裝置)
-
-
進程及其實現
- 概念:
- 進程:是一個可併發執行的,具有獨立功能的程式關於某個數據集合的一次執行過程,也是操作系統進行資源分配和保護的基本單位
- 屬性:
- 結構性:每個進程至少包含三個要素 程式塊、數據塊、進程式控制制塊
- 共用性:多個不同的進程可以共用相同的程式,所以,進程和程式不是一一對應的
- 動態性:進程由創建而產生,由調度而執行,由撤銷而消亡
- 獨立性:進程是系統中資源分配和保護的基本單位,也是系統調度的獨立單位
- 制約性:併發進程之間存在制約關係,進程執行的關鍵點上需要相互等待互通消息
- 併發性:在單處理器系統環境下,各個進程輪流占用處理器
- 進程狀態與切換
- 三態模型
- 運行態
- 就緒態
- 等待態
- 五態模型(新增)
- 新建態
- 終止態
- 七態模型(新增)
- 掛起就緒態
- 掛起等待態
- 三態模型
- 進程描述
- 操作系統的控制結構
- 進程式控制製表:管理進程及其相關信息
- 存儲控製表:管理主存和外存
- I/O控製表:管理I/O設備和通道
- 文件控製表:管理文件
- 進程實體的組成
- 進程式控制制塊:每個進程都綁定一個進程式控制制塊,用來存儲進程的標誌信息、現場信息、和控制信息。
- 程式塊:被執行的程式
- 數據塊:進程的私有地址空間
- 核心棧:函數調用的參數和返回地址
- 進程上下文
- 概念:指進程物理實體和支持進程的環境
- 用戶級上下文
- 寄存器上下文
- 系統級上下文
- 操作系統的控制結構
- 進程隊列:處於同一狀態的所有PCB鏈接在一起的數據結構
- 概念:
-
線程及其實現
- 概念: 線程(threads)是一個比進程更小的單位,他的引入是為了減少程式在併發執行時所付出的時空開銷,使 OS 具有更好的併發性。在引入線程這個概念後,資源分配仍是以進程為單位的而進程調度則是以線程為基本單位的
- 特點
- 進程是資源分配的基本單位,線程是調度的基本單位,線程幾乎不擁有資源,只擁有極少量的資源。線程也有運行態、就緒態、阻塞態。
- 同一進程下的各個線程間共用記憶體地址空間,可以直接通過讀/寫記憶體空間。
- 特性
- 併發性:同一進程的多個線程可在一個/多個處理器上併發或並行地執行,而進程之間的併發執行演變為不同進程的線程之間的併發執行。
- 共用性:同一個進程中的所有線程共用但不擁有進程的狀態和資源,且駐留在進程的同一個主存地址空間中,可以訪問相同的數據。所以,需要有線程之間的通信和同步機制,但通信和同步的實現十分方便。
- 動態性:線程是程式在相應數據集上的一次執行過程,由創建而產生,至撤銷而消亡,有其生命周期,經歷各種狀態的變化。每個進程被創建時,至少同時為其創建一個線程,需要時線程可以再創建其他線程。
- 結構性:線程是操作系統中的基本調度和分派單位,因此,它具有唯一的標識符和線程式控制制塊,其中應包含調度所需的一切信息。
-
處理器調度系統
- 概念:如何從多個作業選擇一些作業載入到記憶體,為其創建進程和如何從多個進程中選擇一個進程占用處理器運行的問題
- 分類
- 高級調度(作業調度,長程調度):從磁碟後備作業隊列中挑選若幹作業進入記憶體,為其分配資源,創建進程;作業完成後還要做善後處理工作。簡言之,就是記憶體與輔存之間的調度。對於每個作業只調入一次、調出一次。
- 中級調度(平衡調度,中程調度):引入中級調度是為了提高記憶體利用率和系統吞吐量。為此,應使那些暫時不能運行的進程,調至外存等待,把此時的進程狀態稱為掛起狀態。當它們已具備運行條件且記憶體又稍有空閑時,由中級調度來決定,把外存上的那些已具備運行條件的就緒進程,再重新調入記憶體,並修改其狀態為就緒狀態,掛在就緒隊列上等待。
- 低級調度(進程調度,線程調度,短程調度):其主要任務是按照某種方法和策略從就緒隊列中選取一個進程,將處理機分配給它。進程調度是操作系統中最基本的一種調度,在一般操作系統中都必須配置進程調度。進程調度的頻率很高,一般幾十毫秒一次。
- 調度演算法的原則(基本的概念計算公式)
- 資源利用率
- cpu 利用率 = cpu有效工作時間/cpu總的運行時間
- cpu總的運行時間 = cpu 有效工作時間 + cpu 空閑等待時間
- 吞吐量:長作業需要消耗較長的處理機時間,因此會降低系統的吞吐量。而對於短作業,它們所需要消耗的處理機時間較短,因此能提高系統的吞吐量。調度演算法和方式的不同,也會對系統的吞吐量產生較大的影響。
- 響應時間 :是指從用戶提交請求到系統首次產生響應所用的時間。在互動式系統中,周轉時間不可能是最好的評價準則,一般釆用響應時間作為衡量調度演算法的重要準則之一。從用戶角度看,調度策略應儘量降低響應時間,使響應時間處在用戶能接受的範圍之內。
- 作業的周轉時間公式
- 周轉時間 = 作業完成時間 - 作業提交時間
- 帶權周轉時間 = 作業周轉時間/作業實際運行時間
- 等待時間=開始時間—提交時間
- 資源利用率
-
處理器調度演算法
- 先來先服務演算法
- 最短作業優先演算法
- 最短剩餘時間演算法:最短時間的優先
- 響應比優先演算法:響應比=作業響應的時間/作業處理時間
- 優先順序調度演算法
- 輪轉調度演算法:在這種演算法中,系統將所有就緒進程按到達時間的先後次序排成一個隊列,進程調度程式總是選擇就緒隊列中第一個進程執行,即先來先服務的原則,但僅能運行一個時間片,如100ms。在使用完一個時間片後,即使進程並未完成其運行,它也必須釋放出(被剝奪)處理機給下一個就緒的進程,而被剝奪的進程返回到就緒隊列的末尾重新排隊,等候再次運行。
- 多級反饋隊列調度演算法
- 建立兩個或多個就緒隊列
- 優先順序越高隊列的優先順序越短,運行的時間片也越短
- 當前隊列在運行的時間片內未完成,剩下的轉入次優先順序隊列