程式的執行
完成與體系結構相關的工作(重點: 作業系統必須了解和適配硬體)
完成應用程式所需的共性任務, 提供各種基礎服務
效能,安全,健壯性等問題
作業系統中的中斷/異常機制很重要, 可以比作汽車的發動機, 飛機的引擎. 也可以說作業系統由中斷驅動或者事件驅動
i/o 中斷: 鍵盤上control+c,印表機結束了, 讀盤結束
時鐘中斷: 設定定時器到點了, 時間片到了
硬體故障: 膝上型電腦沒電了, 讀記憶體奇偶校驗錯誤
系統呼叫
頁故障/頁錯誤: 程式執行時候需要從磁碟load到記憶體(缺頁異常)
保護性異常: 記憶體空間標記為唯讀(執行寫操作), 訪問記憶體空間越界
斷點指令: 程式debug
程式性異常: 算術溢位, 棧溢位, 除零
類別原因
非同步/同步
返回行為
中斷interrupt
來自i/o裝置,其他硬體
非同步返回下一條指令
陷入trap
有意識安排的
同步返回下一條指令
故障fault
可恢復的錯誤
同步返回當前指令
終止abort
不可恢復的錯誤
同步不返回
軟體做了什麼? --中斷/異常處理程式
我們以印表機輸入輸出中斷為例描述一下
印表機給cpu發出中斷訊號
處理器狀態切換到核心態
在系統中儲存上下文, 主要是程式計數器pc和狀態字暫存器psw
cpu根據中斷碼查中斷向量表, 查到程式入口位址, 將pc設定成該位址。當新的指令週期開始時,cpu轉移到中斷處理程式
在系統棧中儲存現場資訊
檢查i/o裝置狀態
中斷處理結束後, cpu檢測到中斷返回指令,從系統堆疊中恢復被中斷程式的上下文, 也就是將psw和pc設定回原來的值, 等下乙個指令週期繼續執行。(硬體完成)
作業系統向使用者程式提供的介面
利用硬體提供的中斷/異常機制, 支援系統呼叫服務的實現
選擇一條特殊的指令, 陷入指令(也叫做訪管指令), 引發異常, 完成使用者態->核心態的切換(所有的系統呼叫都是通過該指令進入核心)
每個系統呼叫事先給好乙個編號, 也叫功能號(訪管指令其實是通過傳參的方式進入系統)
系統呼叫表: 存放系統呼叫服務的入口位址
cpu接到特殊的陷入指令將進行如下操作
作業系統的執行環境
cpu執行兩種不同性質的程式 一種是作業系統的核心,另一種是使用者自編程式或者系統外層的應用程式。故劃分為使用者態和核心態 管態 特權指令時指計算機中不允許使用者直接使用的指令,如i o指令,置中斷,訪問用於記憶體保護的暫存器,送程式狀態字暫存器的指令。作業系統的各項功能分別置於不同的層次上,和硬體...
作業系統課堂筆記二 作業系統執行環境
作業系統執行機制 中斷異常機制工作原理 系統呼叫機制 系統呼叫實戰 參考舉例 陷入指令 訪管指令 是一條特殊的指令,通過這條指令,可以使使用者程式向作業系統提出各種各樣的請求,例如 int,trap,syscall,sysenter sy it 核心態 使用者態 概念 cpu對系統發生某個事件的一種...
作業系統筆記0 2 作業系統的執行環境
作業系統在硬體之上,其他軟體之下,直接與硬體打交道。作業系統的執行環境這部分內容,涉及 計算機體系結構 和 微機原理 等課程知識 中斷 中斷 系統呼叫 cpu狀態 1.指令系統分類 在多道程式系統中,為保證安全,把指令系統分為兩類 特權指令 非特權指令 特權指令 非特權指令 只允許作業系統 一般使用...