操作系統課堂筆記(2)操作系統的硬件環境之中央處理器
專門設計了一系列基本機制:
- 具有特權級別的處理器狀態,能在不同特權級運行的各種特權指令
- 硬件機制使得OS可以和普通程序隔離, 實現保護和控制
1.CPU的構成與基本工作方式
處理器由運算器、控制器、一系列的寄存器以及高速緩存構成
運算器實現指令中的算術和邏輯運算,是計算機計算的核心
控制器負責控制程序運行的流程,包括取指令、維護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
相關文章: