作業系統學習筆記2_處理器管理
一、中央處理器
一個程式裝載入記憶體後有四個部分: 程式碼 資料 堆(heap):malloc分配的空間就是從這裡來的 棧(stack):系統使用的空間,儲存函式的返回地址。
CPU由運算器、暫存器、控制器和快取構成,其中快取分為內部1級快取和外部2級快取。
暫存器是一組CPU內部的儲存器,容量小但速度快,一般存放運算元、地址以及控制資訊等,分為通用暫存器、 資料暫存器、地址暫存器、I/O地址暫存器、I/O緩衝暫存器、控制暫存器和其他暫存器。
區別:指令分為特權指令和非特權指令,處理器狀態分為管理狀態和使用者狀態。
通常作業系統都引入程式狀態字PSW來區別不同的處理器工作狀態並且保留和指示與執行程式有關的各種資訊。它主要內容包括: 程式基本狀態( 程式計數器PC 、條件碼:反映指令執行後的結果特徵、 處理器狀態 )、中斷碼:儲存程式執行當時發生的中斷事件、中斷遮蔽碼:指明程式執行中發生中斷事件時,是否響應出現的中斷事件。PSW儲存程式的現場資訊。
二、中斷技術
中斷是程式執行過程中對非同步事件的響應:當發生某個事件時中止CPU上現行程式的執行、引出該事件的處理程式執行、執行完畢返回原程式中斷點繼續執行。是實現多道程式的必要條件。
中斷系統分為中斷裝置和中斷程式。
中斷源:引起中斷的事件,分為:
中斷是指令執行之間進行切換的契機,而異常則是指令執行中出現的問題。
工作過程中,中斷裝置發現中斷源後,響應中斷請求,保護現場(使用PSW)並啟動處理中斷時間的中斷處理程式。需要的關鍵部件為中段暫存器和中斷字。且目態正是通過中斷轉換為管態。處理完畢後,恢復程序。
中斷事件可分為:
- 機器故障中斷事件
- 程式性中斷事件
- 時鐘中斷事件
- I/O中斷事件
- 自願中斷事件
中斷優先順序為:機器校驗中斷、自願性中斷、程式性中斷、外部中斷、I/O中斷、重啟動中斷。
在中斷的處理中,主機可以通過PSW中的中斷遮蔽位允許或禁止某一種中斷。
多重中斷是指在處理某個中斷事件時CPU又響應了一箇中斷事件,也稱中斷巢狀。
三、程序及其實現
程式存放在外存中不會消失,產生和消亡的只是與之相關的記憶體資訊。 程式只有進入了記憶體才能執行,在執行過程中可能會被另一個執行的程式打斷暫失去CPU。 用程序一詞來描述程式這一動態的執行過程。程式P1被裝入記憶體後被稱為程序P1
程式P與執行過程不是一一對應的,一個程式可以同時有多個執行過程,所以把每個執行過程稱作程序。
程序是資源分配、保護和排程的基本單位,能完成具體的功能,是在某個資料集合上完成的,執行過程是可併發的。
三態模型:
五態模型:
七態模型:
程序在主存實際存放並非連續的
PCB(程序控制塊):標識資訊( 每個程序需要一個唯一的ID號)、現場資訊(PSW和其它暫存器值 使用者堆疊指標)、控制資訊 (程序的狀態 、時間片餘量,已佔用CPU時間 、程序在輔存中的地址 資料段、程式碼段指標、 佇列指標)
作業系統使用佇列管理的方式。
核心態下程序會發生切換,程序切換是讓處於執行態的程序中斷執行,讓出處理器,這時要做一次程序上下文切換、即儲存老程序狀態而裝入被保護了的新程序的狀態,以便新程序執行。當程序進入等待狀態時(自願放棄yield)或 完成系統呼叫或中斷處理,返回使用者態但不是最具有資格獲得CPU時(搶佔preempt)進入就緒狀態以及程序執行結束時進入終止狀態後,核心允許發生程序切換。
程序切換步驟:
- 儲存被中斷程序的處理器現場資訊
- 修改被中斷程序的程序控制塊的有關資訊,如程序狀態等
- 把被中斷程序的程序控制塊加入有關佇列
- 選擇下一個佔有處理器執行的程序
- 修改被選中程序的程序控制塊的有關資訊
- 根據被選中程序設定作業系統用到的地址轉換和儲存保護資訊
- 根據被選中程序恢復處理器現場
模式切換
程序的控制:
- 建立 建立一個PCB 賦予一個統一程序識別符號 為程序映象分配空間 初始化程序控制塊(如: 狀態為 New,優先順序) 設定相應的連結(把新程序加到就緒佇列的連結串列中)
- 阻塞和喚醒
- 撤銷 回收程序佔用的資源 、撤銷該程序的PCB並回收PCB空間
- 掛起和啟用
四、執行緒及其實現
分為以下幾類:
執行緒控制塊TCB
併發多執行緒程式設計的優點:
- 提高了響應速度:多執行緒互動式應用程式可以允許程式在它的一部分被阻塞或正在執行一個冗長的操作時持續執行,從而提高了了對使用者的響應速度。
- 資源共享:預設情況下,執行緒共享它們所屬程序的儲存器和資源。程式碼共享的優點在於它允許應用程式在同樣的地址空間內擁有多個不同的活動執行緒。
- 經濟實惠:為程序建立分配儲存器和資源代價高昂。因為執行緒共享它們所屬程序的資源,所以執行緒的建立和上下文轉換更為划算。
- 提高了多處理機體系結構的利用率:在多處理機體系結構中,多執行緒的優點就更加顯著了。在這種系統中,多個執行緒可以在不同的處理器上並行執行。
五、處理器排程
排程級別分為高階排程、中級排程和低階排程。
批處理系統的排程效能指標
排程演算法:
先來先服務(FCFS)
時間片輪轉(Round Robin):n個就緒佇列中的程序和時間片q 每個程序獲得 的CPU 時間,大約是q個時間單位 沒有程序等待時間會超過 (n-1)q。
最短作業優先(SJF)
如果一個新作業所需的CPU時間比當前正在執行的作業所剩餘時間短,那麼新作業將搶佔CPU。
例題: 到達系統時間 所需CPU時間
P1 0 8
P2 1 4
P3 2 9
P4 3 5
SRTF: T = (17+5+26+10)/4=14.5 (平均等時間6.5)
優先數排程(Priority)
最高響應比優先(HRRF)
多級反饋佇列排程
彩票排程