先來先服務排程(FCFS)演算法及優缺點

2020-07-16 10:04:40
毫無疑問,最簡單的 CPU 排程演算法是先來先服務(FCFS)排程箅法。釆用這種方案,先請求 CPU 的進程首先分配到 CPU。

FCFS 策略可以通過 FIFO 佇列容易地實現。當一個進程進入就緒佇列時,它的 PCB 會被連結到佇列尾部。當 CPU 空閒時,它會分配給位於佇列頭部的進程,並且這個執行進程從佇列中移去。FCFS 排程程式碼編寫簡單並且理解容易。

FCFS 策略的缺點是,平均等待時間往往很長。假設有如下一組進程,它們在時間 0 到達,CPU 執行長度按 ms 計:

進程 執行時間
P1 24
P2 3
P3 3

如果進程按 P1、P2、P3 的順序到達,並且按 FCFS 順序處理,那麼得到如下 Gantt 圖所示的結果(這種 Gantt 圖為條形圖,用於顯示排程情況,包括每個進程的開始與結束時間):