時間片timeslice)又稱為「量子(quantum)」或「處理器片(processor slice)」是分時作業系統分配給每個正在執行的行程微觀上的一段CPU時間(在搶占核心中是:從行程開始執行直到被搶占的時間)。

現代作業系統(如:WindowsLinuxMac OS X等)允許同時執行多個行程。例如,在打開音樂播放器的同時用瀏覽器瀏覽網頁並下載檔案。由於一台電腦通常只有一個CPU,所以不可能真正地同時執行多個任務。這些行程「看起來像」同時執行,實則是輪番執行,由於時間片通常很短(在Linux上為5ms-800ms),使用者不會感覺到。

時間片由作業系統核心的排程程式分配給每個行程。首先,核心會給每個行程分配相等的初始時間片,然後每個行程輪番地執行相應的時間,當所有行程都處於時間片耗盡的狀態時,核心會重新為每個行程計算並分配時間片,如此往復。

時間片的分配

編輯

通常狀況下,一個系統中所有的行程被分配到的時間片長短並不是相等的,儘管初始時間片基本相等(在Linux系統中,初始時間片也不相等,而是各自父行程的一半),系統通過測量行程處於「睡眠」和「正在執行」狀態的時間長短來計算每個行程的互動性,互動性和每個行程預設的靜態優先級Nice值)的疊加即是動態優先級,動態優先級按比例縮放就是要分配給那個行程時間片的長短。一般地,為了獲得較快的回應速度,互動性強的行程(即趨向於IO消耗型)被分配到的時間片要長於互動性弱的(趨向於處理器消耗型)行程。

參考圖書

編輯
  1. 《Linux核心設計與實現》羅伯特·拉姆(Robert Love〉 著
  2. 《windows核心原理與實現》

參見

編輯