時間片(timeslice)又稱為「量子(quantum)」或」 處理器片(processor slice)」是分時作業系統分配給每個正在運行的進程微觀上的一段CPU時間(在搶佔核心中是:從行程開始運作直到被搶佔的時間)。現代作業系統(如:Windows、Linux、Mac OS X等)允許同時執行多個進程 —— 例如,你可以在開啟音樂播放器聽音樂的同時用瀏覽器瀏覽網頁並下載檔案。事實上,由於一台電腦通常只有一個CPU,所以永遠不可能真正同時執行多個任務。這些進程「看起來像」同時運行的,實則是輪番穿插地運行,由於時間片通常很短(在Linux上為5ms-800ms),用戶不會感覺到。
時間片由作業系統核心的調度程序分配給每個行程。首先,核心會為每個行程分配相等的初始時間片,然後每個行程輪番地執行對應的時間,當所有行程都處於時間片耗盡的狀態時,核心會重新為每個行程計算並分配時間片,如此往復。
通常狀況下,一個系統中所有的進程被分配到的時間片長短並不是相等的,儘管初始時間片基本上相等(在Linux系統中,初始時間片也不相等,而是各自父進程的一半),系統透過測量進程處於「睡眠」和「正在運行」狀態的時間長短來計算每個進程的交互性,交互性和每個進程預設的靜態優先權(Nice值)的疊加即是動態優先權,動態優先權按比例縮放就是要分配給那個行程時間片的長短。一般地,為了獲得較快的反應速度,互動性強的進程(即趨向於IO消耗型)被分配到的時間片要長於交互性弱的(趨向於處理器消耗型)進程。
以上是有關時間片的相關介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!