先來先服務

先來先服務

如果早就緒的進程排在就緒隊列的前面,遲就緒的進程排在就緒隊列的後面,那麼先來先服務(FCFS: first come first service)總是把當前處於就緒隊列之首的那個進程調度到運行狀態。也就說,它只考慮進程進入就緒隊列的先後,而不考慮它的下一個CPU周期的長短及其他因素。FCFS演演算法簡單易行,但性能卻不大好。

基本思想


先來先服務的作業調度演演算法:優先從後備隊列中,選擇一個或多個位於隊列頭部的作業,把他們調入內存,分配所需資源、創建進程,然後放入“就緒隊列”。
先來先服務的進程調度演演算法:從“就緒隊列”中選擇一個最先進入隊列的進程,為它分配處理器,使之開始運行。

關鍵要領


按照進程進入就緒隊列的先後順序調度並分配處理機執行。先來先服務調度演演算法是一種不可搶佔的演演算法,先進入就緒隊列的進程,先分配處理機運行。一旦一個進程佔有了處理機,它就一直運行下去,直到該進程完成工作或者因為等待某事件發生而不能繼續運行時才釋放處理機。
(1)系統只要有按FIFO規則建立的後備作業隊列或就緒進程隊列即可,就是一個作業控制塊JCB或進程式控制制塊PCB加入隊列時加在相應隊列末尾。
(2)調度退出隊列時從相應隊列首開始順序掃描,將相關的JCB或PCB調度移出相應隊列。

優缺點


有利於長作業(進程)而不利於短作業(進程)
有利於CPU繁忙型作業(進程)而不利於I/O繁忙型作業(進程)