1. 程式人生 > >操作系統-CPU調度

操作系統-CPU調度

地址空間 一次 緩存 bsp 工作 完成 tlb 調用 下一個

概念

控制、協調多個進程對CPU的競爭

即按一定的調度算法從就緒隊列中選擇一個進程,把CPU的使用權交給被選中的進程

場景

N個進程就緒,等待上M(M>=1)個CPU運行,需要決策哪個進程分配給哪個CPU運行

解決

WHAT:調度算法(按什麽原則選下一個),WHEN:調度時機(何時選),HOW:調度過程(被選中的進程如何上CPU運行)

具體

調度時機:內核對中斷/異常/系統調用處理後返回用戶態時(就緒隊列的改變引發重新調度)

  如進程正常終止(退出),進程由於錯誤終止(如abort異常),新進程創建,一個等待進程變就緒態(喚醒),一個進程由運行態變為就緒態

或阻塞態(等待或中斷)

調度過程:進程切換,一個進程讓出CPU,另一個占用CPU,包括對原進程狀態的保存和新進程狀態的恢復

  舉例:進程A下CPU,進程B上CPU,整個過程包括保存A的進程的上下文,修改進程A的狀態(更新PCB),進程A移至合適隊列,將B的狀態

設置為運行態,從進程B的PCB中恢復上下文

一個重要概念:上下文切換開銷

直接開銷包括內核完成切換所用的CPU時間(保存和恢復寄存器,切換地址空間等)

間接開銷包括高速緩存,緩沖區緩存,TLB失效

調度算法的衡量指標

吞吐量--每單位時間完成的進程的數目

周轉時間--每個進程從提出請求到運行完成的時間

響應時間--從提出請求到第一次回應的時間

CPU利用率--CPU做有效工作的時間比列

等待時間--每個進程在就緒隊列中等待的時間

操作系統-CPU調度