專門設計了一系列基本機制:
- 具有特權級别的處理器狀态,能在不同特權級運作的各種特權指令
- 硬體機制使得OS可以和普通程式隔離, 實作保護和控制
處理器由運算器、控制器、一系列的寄存器以及高速緩存構成
運算器實作指令中的算術和邏輯運算,是計算機計算的核心
控制器負責控制程式運作的流程,包括取指令、維護CPU狀态、CPU與記憶體的互動等等
處理器中的寄存器
寄存器提供了一定的存儲能力,速度比主存快得多,造價高,容量一般都很小
兩類寄存器:
使用者可見寄存器,進階語言編譯器通過算法配置設定并使用之,以減少程式通路記憶體次數
控制和狀态寄存器,用于控制處理器的操作
由OS的特權代碼使用, 以控制其他程式的執行
使用者可見寄存器
機器語言直接引用
包括資料寄存器、位址寄存器以及條件碼寄存器
資料寄存器(data register)又稱通用寄存器
主要用于各種算術邏輯指令和訪存指令
位址寄存器(address register)用于存儲資料及指令的實體位址、線性位址或者有效位址,用于某種特定方式的尋址。如index register、segment pointer、stack pointer
條件碼寄存器儲存CPU操作結果的各種标記位, 如算術運算産生的溢出、符号等等
控制和狀态寄存器
用于控制處理器的操作
大部分對于使用者是不可見的
一部分可以在某種特權模式(由OS使用)下通路
常見的控制和狀态寄存器:
程式計數器(PC:Program Counter),記錄将要取出的指令的位址
指令寄存器(IR:Instruction Register),包含最近取出的指令
程式狀态字(PSW:Program Status Word),記錄處理器的運作模式資訊等等
2.特權指令和非特權指令
使用多道程式設計技術的計算機指令系統必須要區分為特權指令和非特權指令
特權指令一般引起處理器狀态的切換
處理器通過特殊的機制将處理器狀态切換到作業系統運作的特權狀态(管态)
然後将處理權移交給作業系統中的一段特殊代碼,這一個過程稱為陷入
CPU如何知道目前運作的是作業系統還是一般應用軟體?有賴于處理器狀态的辨別
3.處理器的狀态
根據運作程式對資源和機器指令的使用權限将處理器設定為不同狀态——程式狀态字PSW
多數系統将處理器工作狀态劃分為管态和目态
管态:作業系統管理程式運作的狀态,較高的特權級别,又稱為特權态(特态)、核心态、系統态
目态:使用者程式運作時的狀态,較低的特權級别,又稱為普通态(普态)、使用者态
具體處理器将CPU狀态劃分為兩種、三種或四種
4.程式狀态字PSW (Program Status Word )
在PSW中專門設定一位,根據運作程式使用指令的權限而設定CPU狀态
CPU的工作狀态碼——指明管态還是目态,用來說明目前在CPU上執行的是作業系統還是一般使用者,進而決定其是否可以使用特權指令或擁有其他的特殊權力
條件碼——反映指令執行後的結果特征
中斷屏蔽碼——指出是否允許中斷
CPU狀态的轉換
目态→管态
唯一途徑 是 中斷(廣義)
管态→目态
設定PSW(修改程式狀态字) 可實作
一條特殊的指令:訪管指令
供使用者調用作業系統的功能(服務)
INT,TRAP,SYSCALL
最新内容請見作者的GitHub頁:http://qaseven.github.io/