時間片(timeslice)又稱為「量子(quantum)」或「處理器片(processor slice)」是分時作業系統分配給每個正在執行的行程微觀上的一段CPU時間(在搶佔內核中是:從行程開始執行直到被搶佔的時間)。
現代作業系統(如:Windows、Linux、Mac OS X等)允許同時執行多個行程。例如,在打開音樂播放器的同時用瀏覽器瀏覽網頁並下載檔案。由於一台電腦通常只有一個CPU,所以不可能真正地同時執行多個任務。這些行程「看起來像」同時執行,實則是輪番執行,由於時間片通常很短(在Linux上為5ms-800ms),用戶不會感覺到。
時間片由作業系統內核的排程程式分配給每個行程。首先,內核會給每個行程分配相等的初始時間片,然後每個行程輪番地執行相應的時間,當所有行程都處於時間片耗盡的狀態時,內核會重新為每個行程計算並分配時間片,如此往復。
時間片的分配
通常狀況下,一個系統中所有的行程被分配到的時間片長短並不是相等的,儘管初始時間片基本相等(在Linux系統中,初始時間片也不相等,而是各自父行程的一半),系統通過測量行程處於「睡眠」和「正在執行」狀態的時間長短來計算每個行程的互動性,互動性和每個行程預設的靜態優先級(Nice值)的疊加即是動態優先級,動態優先級按比例縮放就是要分配給那個行程時間片的長短。一般地,為了獲得較快的響應速度,互動性強的行程(即趨向於IO消耗型)被分配到的時間片要長於互動性弱的(趨向於處理器消耗型)行程。
參考圖書
- 《Linux內核設計與實現》羅伯特·拉姆(Robert Love〉 著
- 《windows內核原理與實現》
參見
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.