操做系之進程調度及算法詳解

1. 引言

    在多進程環境下,雖然從概念上看,有多個進程在同時執行,但在單個cpu下,實際上任什麼時候刻只能有一個進程處於執行狀態。而其它進程處於非執行狀態。那麼就有一個須要解決的問題:咱們是如何肯定在任意時刻到底由哪一個進程執行,哪些進程不執行呢?或者說咱們是如何進程調度的呢?算法

    1.1 進程調度定義

        進程調度就是操做系統管理進程管理的一個重要組成部分。其任務是選擇下一個要執行的進程。那麼如何進行選擇呢?要探明這一點,首先須要肯定操做系統進程調度的目標是什麼。有了目標,咱們就知道選擇什麼樣的進程調度算法最合適了。spa

        一般狀況下,程序使用cpu的模式有3種:操作系統

  • CPU密集型:大部分時間在cpu上執行較長時間,接着進行短暫的輸入,而後在cpu上進行較長時間間的運算。
  • I/O密集型:程序大部分時間在進行輸入輸出,每次io後進行短暫的cpu執行。
  • 平衡型/混合型:程序介於前兩種模式之間           

    1.2 進程調度目標

 

2. 進程調度算法

    2.1 先來先服務調度算法

 

    2.2 時間片輪轉調度算法

 

    2.3 短任務優先調度算法

 

    2.4 優先級調度算法

 

    2.5 混合調度算法

 

    2.6 其它調度算法

 

    2.7 實時調度算法

相關文章
相關標籤/搜索