學習資源: https://www.bilibili.com/video/av46264774/
二、操作系統邏輯結構
1. 操作系統的邏輯結構
- 整體式結構
- 以模塊爲基本單位構建
- 模塊設計、編碼和調試獨立;模塊調用自由;模塊通信多以全局變量形式完成
- 信息傳遞隨意,維護和更新困難
- 層次結構 (類似TCP/IP協議棧)
- 所有功能模塊按照調用次序排成若干層, 相鄰層間只有單向依賴或單向調用
- 微內核機構 (Minix OS)
操作系統 = 微內核 + 核外服務器- 微內核: 足夠小,提供OS最基本的核心功能和服務
- 實現與硬件緊密相關的處理
- 實現一些較基本的功能
- 負責客戶和服務器間的通信
- 核外服務器: 完成OS的絕大部分服務功能,等待應用程序提出請求
- 進程服務器、線程服務器,需存服務器、設備管理服務器等,以進程形式運行在用戶態。
- 微內核: 足夠小,提供OS最基本的核心功能和服務
Linux是單體內核(宏內核)
2. CPU的態
支持操作系統的最基本硬件結構
- CPU
- 內存
- 中斷
- 時鐘
CPU態(Mode)
- CPU的工作狀態
- 對資源和指令使用權限的描述
態的分類
- 核態(kernel mode)
- 能夠訪問所有資源和執行所有指令
- 管理程序 / OS內核
- 用戶態(User mode, 目態)
- 僅能夠訪問部分資源,其它資源受限
- 用戶程序
- 管態(Supervisor mode)
- 介於核態和用戶態之間
用戶態和核態之間的準換
- 用戶態向核態轉換
- 用戶請求OS提供服務
- 發生中斷
- 用戶進程產生錯誤(內部中斷)
- 用戶態企圖執行特權指令
- 核態向用戶態轉換
- 一般是執行中斷返回: IRET
存儲體系
CPU讀取指令或數據時的訪問順序
- 訪問緩存(命中, HIT)
- 訪問內存(沒有命中,MISS)
- 訪問輔存(缺頁, PAGE_FAULT)
3. 中斷機制
定義: 指CPU對突發的外部事件的反應過程或機,當CPU收到外部信號(中斷信號)後,停止當前工作,轉去處理該外部工作,處理完畢後回到原來工作的中斷處(斷點)繼續原來的工作。
引入中斷的目的:
- 實現併發活動 (CPU和外設等)
- 實現實時處理
- 故障自動處理
中斷源和中斷類型
- 引起系統中斷的事件稱爲中斷源
- 中斷類型
- 強迫性中斷(I/O,外部中斷)和自願中斷
- 外中斷和內中斷
- 不可屏幕中斷和可屏蔽中斷
斷點
- 程序中斷的地方,將要執行的下一指令的地址
- CS:IP
現場(上下文)
- 程序正確執行所依賴的信息集合
- 相關寄存器
現場的兩個處理過程
- 現場的保護: 進入中斷服務程序之前,棧
- 現場的恢復: 退出中斷服務程序後,棧
中斷響應的過程
- 識別中斷源
- 保護斷點和現場
- 裝入中斷服務程序的入口地址(CS:IP); 硬件完成,不需要程序員干預
- 進入中斷服務程序
- 恢復現場和斷點
- 中斷返回: IRET
中斷響應的實質
- 交換指令執行地址
- 交換CPU的態 (中斷響應的過程是在覈態完成的)
- 工作
- 現場保護和恢復
- 參數傳遞(通信) 由主程序傳遞給中斷服務程序,同樣中斷服務程序可以返回給主程序