調度算法FCFS、SJF和優先權調度的介紹和例題


調度算法

一、先來先服務FCFS (First Come First Serve)

  1.思想:

    選擇最先進入后備/就緒隊列的作業/進程,入主存/分配CPU

  2.優缺點

    優點:對所有作業/進程公平,算法簡單穩定

    缺點:不夠靈活,對緊急進程的優先處理權限不夠,在相同時限下處理任務數量可能更少

二、短作業優先SJF (Shortest Job First)

  1.思想:

    可分為搶占式和非搶占式(執行時間越短,優先級越高)

    搶占式優先權,若隊列后續作業/進程的優先級更高,則它搶占CPU資源,之前運行的作業/進程暫停,開始執行優先級更高的作業/進程,總結就是當前在CPU中的作業/進程總是執行時間最短,能夠最快完成的

    非搶占式優先權,若當前CPU中已經有正在執行的作業/進程,則不會打斷其執行過程,當后備隊列中有多個進程時,下一個會先執行優先級高的作業/進程,入主存/分配CPU,總結就是下一個執行的作業/進程總是在后備隊列中執行時間最短的 

  2.優缺點

    優點:靈活性高,相同時限下能處理更多的任務

    缺點:不夠穩定,算法更復雜

PS:優先級調度算法與此算法類似,只不過額外指明了作業/進程的優先級以確定執行先后順序,在此不再贅述

三、舉例

  周轉時間 = 完成時刻 - 進入時刻 

  等待時間 = 完成時刻 - (進入時刻 + 執行時間)

  1.FCFS

    調度順序:P1 -> P2 -> P3 -> P4

    畫個Gantt圖助於理解

    

    下方為不同進程進入隊列次序及時間,上方為CPU中進程執行順序表

    平均周轉時間:Ta = (8 + 11 + 19 + 23) / 4 = 15.25s

    平均等待時間:Tw = (0 + 7 + 10 + 18) / 4 = 8.75s

  2.搶占式優先權調度

    調度順序:P1 -> P2 -> P4 -> P2 -> P3 -> P1

    

      平均周轉時間:Ta = (26 +  9 + 17 + 5) / 4 = 14.25s

    平均等待時間:Tw = (18 + 5 + 8 + 0) / 4 = 7.75s

  3.非搶占式SJF

    調度順序:P1 -> P2 -> P4 -> P3

    

    平均周轉時間:Ta = (8 +  11 + 24 + 14) / 4 = 14.25s

    平均等待時間:Tw = (0 + 7 + 15 + 9) / 4 = 7.75s


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM