CPU排程是多道程式作業系統的基礎。通過在進程間切換 CPU,作業系統可以使得計算機更加高效。
對於單處理器系統,同一時間只有一個進程可以執行;其他進程都應等待,直到 CPU 空閒並可排程為止。多道程式的目標是,始終允許某個進程執行以最大化 CPU 利用率。
這種想法比較簡單。一個進程執行直到它應等待為止,通常等待某個 I/O 請求的完成。對於簡單的計算機系統,CPU 就處於閒置狀態。所有這些等待時間就會浪費,沒有完成任何有用工作。採用多道程式,我們試圖有效利用這個時間。多個進程同時處於記憶體。當一個進程等待時,作業系統就從該進程接管 CPU 控制,並將 CPU 交給另一進程。這種方式不斷重複。當一個進程必須等待時,另一進程接管 CPU 使用權。
這種排程是作業系統的基本功能。幾乎所有計算機資源在使用前都要排程。當然,CPU 是最重要的計算機資源之一。因此,CPU 排程是作業系統設計的重要部分。
CPU-I/O執行週期
CPU 的排程成功取決於如下觀察到的進程屬性,進程執行包括週期進行
CPU 執行和
I/O 等待。進程在這兩個狀態之間不斷交替。
進程執行從 CPU 執行開始,之後 I/O 執行;接著另一個 CPU 執行,接著另一個 I/O 執行;等等。最終,最後的 CPU 執行通過系統請求結束,以便終止執行(圖 1)。
圖 1 CPU 執行和 I/O 執行的交替序列