天天看點

現代作業系統 原理與實作(銀杏書)—— 作業系統排程作業系統排程

作業系統排程

單核排程政策

經典排程

先到先得 / 先進先出(FIFO)

  • 缺點:
    • 長短任務混合的場景對短任務不友好

      如果長任務先到,那麼所有短任務都等待很久

    • 對I/O密集型任務不友好

      I/O時會放棄CPU重新排隊

最短任務優先(SJF shortest job first)

  • 缺點:
    • 必須預知任務的運作時間
    • 遲到的短任務無法優先

最短完成時間任務優先(STCF)

  • 搶占式的SJF

時間片輪轉(RR Round Robin)

優先級排程

多核排程政策

能耗感覺排程(EAS, Energy Aware Scheduling)

以ARM的DynamIQ架構為例,其架構包含大核和小核兩種計算單元

Linux的能耗感覺排程

  • linux目前使用完全公平排程器(Completely Fair Scheduler, CFS)
  • ESA需要使用目前處理器架構的功耗模型,包括:
    • 容量
      • 目前CPU在目前頻率下的處理能力
      • 每個任務會占用一定的容量
    • 功率
      • 目前CPU在目前功率下的功率,機關是毫瓦(mW)
  • 系統的CPU核心會被劃分為多個性能域(Performance Domain, PD)
  • 一個能耗模型中有多個性能操作點(Operating Performance Point, OPP)
    • CPU的容量和功率的對應關系
    • 同一個性能域的CPU具有同樣的性能操作點(大核一樣、小核一樣)

當任務到來時:

  • 任務的大小為x
  • 看大核和小核的OPP中容量能夠滿足x的點對應的功耗,選擇較小的CPU

NOTE: EAS使用于中、低負載場景。

當任一CPU核心的目前負載超過80%,Linux會開啟負載均衡并關閉EAS。

繼續閱讀