作業系統 3. 行程管理 - Ian-Liu-1990/Computer-Arch-OS GitHub Wiki

行程

I. 行程控制表

  • 定義 : 記載其程序包含之相關資訊
  • 行程表內容:
  1. 行程狀態5個狀態
    1. 進入: 新產生->就緒

    1. 排班程式取的資源 : 就緒->執行
    2. 中斷 :執行->就緒

    1. 請求I/O或等待事件: 執行->等待
    2. I/O完成或事件發生: 等待->就緒
    3. 執行完畢 : 執行->結束離開
  2. 程式計數器
  3. 暫存器
  4. 排程法則 : 決定行程優先順序
  5. 記憶體管理資訊 : 基底暫存器,限制暫存器,分頁表和段表等資訊

II. 內容轉換(Context Switch)

  • 轉換 CPU 至另一項行程時必須將舊行程的狀態儲存(State Save)起來,然後再載入新行程的儲存狀態(還原狀態:State Restore)。

III. 排程演算法

  1. 先到先做(First Come First Serve, FCFS)

    1. 不同時間抵達
  2. 最短優先(Sortest Job First, SJF)或最短處理時間[中鋼](Sortest Process Time, SPT) : 擁有平均延遲時間最少的特性

    1. 相同時間抵達

    2. [不同時間抵達]

  3. 最小剩餘先做(The Shortest Remaining Job First, SRJF): 可搶先新行程進入就要觸發 ,設計上有難以預測剩餘時間的困難度地方4等

  4. 優先權(Priority)

    1. 可搶奪 : 新行程進入就要觸發(若是搶先題,題目會給每個行程不同進入的時間)
    2. 不可搶先
  5. 循環分時(Round Robin) : 時間到就換人,最後一個人之後沒有行程可以持續使用到結束[國營]

    1. 沒有給抵達時間 : 就按順序依序使用

    2. 有給抵達時間 : 依抵達時間先後順序輪流使用


效能評估

  1. 產出量

  2. 等候時間(Waiting Time) = 開始執行時間 - 開始等待時間

  3. 迴轉時間(TurnAround Time) = 行程結束執行時間(不管分幾次,以最後一次完成為最後結束) - 進入排程時間