调度算法FCFS、SJF和优先权调度的介绍和例题
調(diào)度算法
一、先來(lái)先服務(wù)FCFS (First Come First Serve)
1.思想:
選擇最先進(jìn)入后備/就緒隊(duì)列的作業(yè)/進(jìn)程,入主存/分配CPU
2.優(yōu)缺點(diǎn)
優(yōu)點(diǎn):對(duì)所有作業(yè)/進(jìn)程公平,算法簡(jiǎn)單穩(wěn)定
缺點(diǎn):不夠靈活,對(duì)緊急進(jìn)程的優(yōu)先處理權(quán)限不夠,在相同時(shí)限下處理任務(wù)數(shù)量可能更少
二、短作業(yè)優(yōu)先SJF (Shortest Job First)
1.思想:
可分為搶占式和非搶占式(執(zhí)行時(shí)間越短,優(yōu)先級(jí)越高)
搶占式優(yōu)先權(quán),若隊(duì)列后續(xù)作業(yè)/進(jìn)程的優(yōu)先級(jí)更高,則它搶占CPU資源,之前運(yùn)行的作業(yè)/進(jìn)程暫停,開(kāi)始執(zhí)行優(yōu)先級(jí)更高的作業(yè)/進(jìn)程,總結(jié)就是當(dāng)前在CPU中的作業(yè)/進(jìn)程總是執(zhí)行時(shí)間最短,能夠最快完成的
非搶占式優(yōu)先權(quán),若當(dāng)前CPU中已經(jīng)有正在執(zhí)行的作業(yè)/進(jìn)程,則不會(huì)打斷其執(zhí)行過(guò)程,當(dāng)后備隊(duì)列中有多個(gè)進(jìn)程時(shí),下一個(gè)會(huì)先執(zhí)行優(yōu)先級(jí)高的作業(yè)/進(jìn)程,入主存/分配CPU,總結(jié)就是下一個(gè)執(zhí)行的作業(yè)/進(jìn)程總是在后備隊(duì)列中執(zhí)行時(shí)間最短的
2.優(yōu)缺點(diǎn)
優(yōu)點(diǎn):靈活性高,相同時(shí)限下能處理更多的任務(wù)
缺點(diǎn):不夠穩(wěn)定,算法更復(fù)雜
PS:優(yōu)先級(jí)調(diào)度算法與此算法類(lèi)似,只不過(guò)額外指明了作業(yè)/進(jìn)程的優(yōu)先級(jí)以確定執(zhí)行先后順序,在此不再贅述
三、舉例
周轉(zhuǎn)時(shí)間 = 完成時(shí)刻 - 進(jìn)入時(shí)刻
等待時(shí)間 = 完成時(shí)刻 - (進(jìn)入時(shí)刻 + 執(zhí)行時(shí)間)
1.FCFS
調(diào)度順序:P1 -> P2 -> P3 -> P4
畫(huà)個(gè)Gantt圖助于理解
下方為不同進(jìn)程進(jìn)入隊(duì)列次序及時(shí)間,上方為CPU中進(jìn)程執(zhí)行順序表
平均周轉(zhuǎn)時(shí)間:Ta = (8 + 11 + 19 + 23) / 4 = 15.25s
平均等待時(shí)間:Tw = (0 + 7 + 10 + 18) / 4 = 8.75s
2.搶占式優(yōu)先權(quán)調(diào)度
調(diào)度順序:P1 -> P2 -> P4 -> P2 -> P3 -> P1
平均周轉(zhuǎn)時(shí)間:Ta = (26 + 9 + 17 + 5) / 4 = 14.25s
平均等待時(shí)間:Tw = (18 + 5 + 8 + 0) / 4 = 7.75s
3.非搶占式SJF
調(diào)度順序:P1 -> P2 -> P4 -> P3
平均周轉(zhuǎn)時(shí)間:Ta = (8 + 11 + 24 + 14) / 4 = 14.25s
平均等待時(shí)間:Tw = (0 + 7 + 15 + 9) / 4 = 7.75s
總結(jié)
以上是生活随笔為你收集整理的调度算法FCFS、SJF和优先权调度的介绍和例题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数字化工厂仿真系统-易景空间数字孪生工厂
- 下一篇: [校招] 压缩算法