1. 指令與處理器模式
- 指令執行周期:取指、譯碼、執行
- 指令分類(根據權限)
- 特權指令:只能被操作系統內核使用(啟動IO,置PC值)
- 非特權指令:所有程序都能使用
- 處理器模式:
- 共有四種:0內核模式,1系統調用,2共享庫程序,3用戶模式
- 一般來說:只有0內核模式(能執行全部指令)和3用戶模式(只能執行非特權指令)
- 模式切換:
- 用戶模式 --> 內核模式(系統調用、異常、響應中斷)
- 內核模式 --> 用戶模式(中斷返回指令)
2. 中斷
- 概念:
- 操作系統是中斷驅動的。即中斷是激活操作系統的唯一方式
- 廣義中斷:停止CPU正在執行的進程,轉而執行中斷處理程序,處理完后返回原進程或調度新進程
- 狹義中斷:源於處理器之外的中斷事件,IO中斷、時鍾中斷、外部信號中斷
- 中斷源:
- 處理器硬件故障中斷事件:內存故障
- 程序性中斷事件:除0異常、缺頁異常
- 自願性中斷事件:系統調用
- IO中斷事件:IO完成
- 外部中斷事件:鼠標點擊
- 中斷系統:
- 實現:硬件完成中斷響應,軟件完成中斷處理
- 中斷裝置:
- 處理器外中斷:由中斷控制器實現
- 處理器內中斷(陷阱):由指令控制邏輯實現
- 系統調用(系統陷阱):執行陷入指令時直接觸發,即系統陷阱
- 中斷處理流程
- 多中斷處理:中斷屏蔽、中斷優先級、中斷嵌套
3. 進程
- 進程:操作系統進行資源分配和調度的獨立單位
- 進程解剖:OS管理進程的數據結構P + 內存代碼 + 內存數據 + 通用寄存器R + PSW
- 進程狀態:
- 進程數據:
- 進程控制塊PCB:是OS用於記錄進程狀態和環境信息的數據結構
- 標識信息:進程標識(進程標識號、進程組標識號)
- 現場信息:用戶可見寄存器內容、控制/狀態寄存器內容、棧指針內容
- 控制信息:進程調度信息、進程組成信息、隊列指引元、通信相關、進程特權信息、處理器使用信息、資源清單信息
- 進程映像:某一時刻進程的內容及執行狀態集合
- 進程控制塊、進程程序塊、進程數據塊、核心棧
- 進程上下文:進程執行的環境支持(CPU現場、Cache中的執行信息)
- 用戶級、寄存器級、系統級
- 進程控制塊PCB:是OS用於記錄進程狀態和環境信息的數據結構
- 進程的管理
- 進程實現的隊列模型
- 進程控制流程
- 進程創建:進程表增加一項,申請PCB並初始化,生成標識,建立映像,分配資源,移入就緒隊列
- 進程撤銷:從隊列中移除,歸還響應資源。。。
- 進程阻塞:保存現場,修改PCB,移入等待隊列
- 進程喚醒:從等待隊列移出,修改PCB,進入就緒隊列
- 進程掛起:修改進程狀態並出入相關隊列,收回內存等資源送至對換區
- 進程激活:分配內存,修改狀態並出入相關隊列
- 原語
- 概念:由若干指令構成的完成某種特定功能,有原子性
- 應用:修改OS核心數據結構(進程表、PCB池)
- 進程切換與模式切換
- 流程: 倆進程上下文切換(保存被中斷的上下文、進程調度、恢復待運行的上下文)
- 模式切換:用戶態到內核態這種。進程切換必須在內核態完成,所以必須經理模式切換
4. 線程
- 多線程技術:一個進程內有多個線程
- 思路:將進程的兩個功能“獨立分配資源”和“調度執行”功能分開
- 分類:
- KLT:內核級多線程
- ULT:用戶級別多線程
- 多線程實現的混合策略
- 一個ULT綁定多個KLT
5. 處理器調度
- 處理器調度的層次:高級、中級、低級
- 處理器調度算法
- 原則:資源利用率、響應時間、周轉時間(進入系統到出系統時間)、吞吐量(單位時間處理進程數)、公平性
- 算法:優先數算法、時間片輪轉、分級調度算法、彩票算法