在多進程環境下,雖然從概念上看,有多個進程在同時執行,但在單個cpu下,實際上任什麼時候刻只能有一個進程處於執行狀態。而其它進程處於非執行狀態。那麼就有一個須要解決的問題:咱們是如何肯定在任意時刻到底由哪一個進程執行,哪些進程不執行呢?或者說咱們是如何進程調度的呢?算法
進程調度就是操做系統管理進程管理的一個重要組成部分。其任務是選擇下一個要執行的進程。那麼如何進行選擇呢?要探明這一點,首先須要肯定操做系統進程調度的目標是什麼。有了目標,咱們就知道選擇什麼樣的進程調度算法最合適了。spa
一般狀況下,程序使用cpu的模式有3種:操作系統