【重學計算機】操做系統D2章:處理器管理

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並初始化,生成標識,創建映像,分配資源,移入就緒隊列
      • 進程撤銷:從隊列中移除,歸還響應資源。。。
      • 進程阻塞:保存現場,修改PCB,移入等待隊列
      • 進程喚醒:從等待隊列移出,修改PCB,進入就緒隊列
      • 進程掛起:修改進程狀態並出入相關隊列,收回內存等資源送至對換區
      • 進程激活:分配內存,修改狀態並出入相關隊列
    • 原語
      • 概念:由若干指令構成的完成某種特定功能,有原子性
      • 應用:修改OS核心數據結構(進程表、PCB池)
  • 進程切換與模式切換
    • 流程: 倆進程上下文切換(保存被中斷的上下文、進程調度、恢復待運行的上下文)
    • 模式切換:用戶態到內核態這種。進程切換必須在內核態完成,因此必須經理模式切換

4. 線程spa

  • 多線程技術:一個進程內有多個線程
  • 思路:將進程的兩個功能「獨立分配資源」和「調度執行」功能分開
  •    
  • 分類:
    • KLT:內核級多線程
    • ULT:用戶級別多線程
  • 多線程實現的混合策略
    • 一個ULT綁定多個KLT

5. 處理器調度操作系統

  • 處理器調度的層次:高級、中級、低級
  • 處理器調度算法
    • 原則:資源利用率、響應時間、週轉時間(進入系統到出系統時間)、吞吐量(單位時間處理進程數)、公平性
    • 算法:優先數算法、時間片輪轉、分級調度算法、彩票算法
相關文章
相關標籤/搜索