專門設(shè)計了一系列基本機制:
- 具有特權(quán)級別的處理器狀態(tài),能在不同特權(quán)級運行的各種特權(quán)指令
- 硬件機制使得OS可以和普通程序隔離, 實現(xiàn)保護和控制
處理器由運算器、控制器、一系列的寄存器以及高速緩存構(gòu)成
運算器實現(xiàn)指令中的算術(shù)和邏輯運算,是計算機計算的核心
控制器負(fù)責(zé)控制程序運行的流程,包括取指令、維護CPU狀態(tài)、CPU與內(nèi)存的交互等等
處理器中的寄存器
寄存器提供了一定的存儲能力,速度比主存快得多,造價高,容量一般都很小
兩類寄存器:
用戶可見寄存器,高級語言編譯器通過算法分配并使用之,以減少程序訪問內(nèi)存次數(shù)
控制和狀態(tài)寄存器,用于控制處理器的操作
由OS的特權(quán)代碼使用, 以控制其他程序的執(zhí)行
用戶可見寄存器
機器語言直接引用
包括數(shù)據(jù)寄存器、地址寄存器以及條件碼寄存器
數(shù)據(jù)寄存器(data register)又稱通用寄存器
主要用于各種算術(shù)邏輯指令和訪存指令
地址寄存器(address register)用于存儲數(shù)據(jù)及指令的物理地址、線性地址或者有效地址,用于某種特定方式的尋址。如index register、segment pointer、stack pointer
條件碼寄存器保存CPU操作結(jié)果的各種標(biāo)記位, 如算術(shù)運算產(chǎn)生的溢出、符號等等
控制和狀態(tài)寄存器
用于控制處理器的操作
大部分對于用戶是不可見的
一部分可以在某種特權(quán)模式(由OS使用)下訪問
常見的控制和狀態(tài)寄存器:
程序計數(shù)器(PC:Program Counter),記錄將要取出的指令的地址
指令寄存器(IR:Instruction Register),包含最近取出的指令
程序狀態(tài)字(PSW:Program Status Word),記錄處理器的運行模式信息等等
2.特權(quán)指令和非特權(quán)指令
使用多道程序設(shè)計技術(shù)的計算機指令系統(tǒng)必須要區(qū)分為特權(quán)指令和非特權(quán)指令
特權(quán)指令一般引起處理器狀態(tài)的切換
處理器通過特殊的機制將處理器狀態(tài)切換到操作系統(tǒng)運行的特權(quán)狀態(tài)(管態(tài))
然后將處理權(quán)移交給操作系統(tǒng)中的一段特殊代碼,這一個過程稱為陷入
CPU如何知道當(dāng)前運行的是操作系統(tǒng)還是一般應(yīng)用軟件?有賴于處理器狀態(tài)的標(biāo)識
3.處理器的狀態(tài)
根據(jù)運行程序?qū)Y源和機器指令的使用權(quán)限將處理器設(shè)置為不同狀態(tài)——程序狀態(tài)字PSW
多數(shù)系統(tǒng)將處理器工作狀態(tài)劃分為管態(tài)和目態(tài)
管態(tài):操作系統(tǒng)管理程序運行的狀態(tài),較高的特權(quán)級別,又稱為特權(quán)態(tài)(特態(tài))、核心態(tài)、系統(tǒng)態(tài)
目態(tài):用戶程序運行時的狀態(tài),較低的特權(quán)級別,又稱為普通態(tài)(普態(tài))、用戶態(tài)
具體處理器將CPU狀態(tài)劃分為兩種、三種或四種
4.程序狀態(tài)字PSW (Program Status Word )
在PSW中專門設(shè)置一位,根據(jù)運行程序使用指令的權(quán)限而設(shè)置CPU狀態(tài)
CPU的工作狀態(tài)碼——指明管態(tài)還是目態(tài),用來說明當(dāng)前在CPU上執(zhí)行的是操作系統(tǒng)還是一般用戶,從而決定其是否可以使用特權(quán)指令或擁有其他的特殊權(quán)力
條件碼——反映指令執(zhí)行后的結(jié)果特征
中斷屏蔽碼——指出是否允許中斷
CPU狀態(tài)的轉(zhuǎn)換
目態(tài)→管態(tài)
唯一途徑 是 中斷(廣義)
管態(tài)→目態(tài)
設(shè)置PSW(修改程序狀態(tài)字) 可實現(xiàn)
一條特殊的指令:訪管指令
供用戶調(diào)用操作系統(tǒng)的功能(服務(wù))
INT,TRAP,SYSCALL
相關(guān)文章: