cpu:運算器,控制器,暫存器,快取記憶體
兩類暫存器:
控制和狀態暫存器(重要):
程式暫存器pc----記錄將要取出指令的位址
指令暫存器ir-----記錄最近取出的指令
程式狀態字psw----記錄處理器的執行狀態
需求保護:併發,共享
兩種cpu狀態:
核心態:執行作業系統程式
使用者態:執行使用者程式
特權指令:只能由作業系統使用,使用者不能用
非特權指令:使用者可用
特權:啟動i/o,記憶體清零,修改程式狀態字,設定時鐘,允許/禁止中斷停機
非特權:
控制轉移,算數運算,訪管指令,取數指令
x86支援的4個處理器特權級別
特權環---r0,r1,r2,r3
r0--核心態
r3--使用者態
r1-r1---兩者之間
cpu狀態之間轉換:
使用者態-->核心態
唯一途徑:中斷/異常/陷入機制(訪管指令:提供給使用者程式介面,用於呼叫作業系統的功能--- 一條特殊指令)
核心態--->使用者態
設定狀態字psw
中斷/異常機制:
作業系統是由中斷驅動或事件驅動的
中斷的引入:為了支援cpu和裝置之間的並行操作
異常的引入:表示cpu執行指令時自身出現的問題
中斷與異常小結
硬體做什麼事:中斷/異常響應
捕獲中斷源發出的中斷/異常請求,以一定方式響應,將處理器控制權交給特定的處理程式
軟體做什麼事: 中斷/異常處理程式
識別中斷/異常型別並完成相應的處理
中斷響應過程示意
中斷向量表:
中斷向量---1個記憶體單元,存放中斷處理程式入口位址和程式執行時所需的處理機狀態字
中斷處理程式:
系統執行時若響應中斷,中斷硬體部件將cpu控制權轉給中端處理程式:
1,儲存相關暫存器資訊
2,分析中斷/異常的具體原因
3,執行對應的處理功能
4,恢復現場,返回被事件打斷的程式
x86對中斷的支援:
中斷控制權(pic或apic)
負責將硬體的中斷訊號轉換為中斷向量,並引發cpu中斷
實模式:中斷向量表
存放中斷服務程式的入口位址
保護模式:中斷描述符表
採用門(gate)描述符資料結構表示中斷向量
系統呼叫機制的設計
1,中斷/異常機制---支援系統呼叫服務的實現
2,選擇一條特殊指令:陷入指令(訪管指令)---引發異常,從使用者態到核心態
3,系統呼叫號和引數---每個系統呼叫都是先給定乙個編號
4,系統呼叫表--存放系統呼叫服務例程的入口位址
注釋:第二種
系統呼叫的執行過程:
當cpu執行到特殊的陷入指令時:
1,中斷/異常機制:硬體保護現場;通過查中斷向量表把控制權轉給系統呼叫總入口程式
2,系統呼叫總入口程式:儲存現場;將引數儲存在核心堆疊裡;通過查系統呼叫表把控制權轉給相應的系統呼叫處理例程或核心函式
3,執行系統呼叫例程
4,恢復現場,返回使用者程式
中斷發生後os底層工作步驟:
1,硬體壓棧:程式計數器等
2,硬體從中斷向量表裝入新的程式計數器等//硬體
3,組合語言過程儲存暫存器值
4,組合語言過程設定新的堆疊
5,c語言中斷服務程式執行//軟體
6,程序排程程式決定下乙個將執行的程序
7,c語言過程返回至彙編**
8,組合語言過程開始執行新的當前程序
作業系統執行機制
cpu上會執行兩種程式 作業系統核心程式和應用程式 開機的時候跑的是作業系統核心程式,適當的時候,作業系統會讓出cpu使用權。cpu的狀態有兩種 核心態和使用者態,管態和目態。psw 程式狀態暫存器 0表示核心態,1表示使用者態。核心態 使用者態 執行一條特權指令,修改psw為1,意味著作業系統主動...
作業系統(四)作業系統的執行機制
目錄 1.4 作業系統的執行機制 1.4.1 核心程式 應用程式 1.4.2 特權指令 非特權指令 1.4.3 核心態 使用者態 1.4.4 作業系統的核心 1.4.5 小結 作業系統其實也是一種程式,程式的執行過程也就是cpu執行一行行機器指令的過程。區別於一般程式設計師開發的應用程式,實現作業系...
大話作業系統之執行機制
什麼是機器指令?能夠讓cpu直接識別,執行的指令就是機器指令。因為cpu只認識0和1,所以機器指令是由 01組成的指令集。程式 怎樣轉化成機器指令的?程式 是通過編譯器,進過一下四個步驟形成最終二進位制可執行檔案 預處理 程式經過cpp預處理器,刪除注釋,刪除define,展開巨集定義,新增行號,檔...