操作系统笔记(6):RR轮转调度算法
這比起說是操作系統(tǒng)實驗,不如說是一個模擬算法而已,
當然目標是為了讓大家更清楚地了解RR輪轉(zhuǎn)調(diào)度算法原理
原理上,書上課上都講過,實現(xiàn)方式上推薦直接模擬一個隊列(本來就應(yīng)該是這樣實現(xiàn)的)http://c.biancheng.net/view/1247.html
下面詳解一下模擬過程:
這里宏變量TIMESLICE決定輪轉(zhuǎn)的一次時間片長度單位
首先讀入數(shù)據(jù),
n為總的進程數(shù)量,
arr數(shù)組中存放各進程到達時刻
use數(shù)組中存放各進程需要的服務(wù)時間
que隊列,h、t是隊列頭尾下標,當然由于設(shè)計成循環(huán)隊列,要對隊列長取模才是實際的下標。
nowT為當前時刻,arrPtr為依次到達的進程下標
run為上一時間單位運行的進程下標
在具體模擬中while(nowT<=1000)
首先判斷有無新進程到達,有的話依次加入到隊列尾部
隨后如果上一個進程未結(jié)束,是被別的進程搶占了,那么它自己還需要的服務(wù)時間不為0,那么放回隊列尾。
后取出隊列頭代表的進程,分別處理 能在一個時間片內(nèi)做完和不能的情況
當然取不出來就空過一個時間單位。
測試
輸入數(shù)據(jù)如下:
輪轉(zhuǎn)時間片為1個單位時
輪轉(zhuǎn)時間片為3個單位時
兩者自然都是20時刻結(jié)束調(diào)度
結(jié)語
RR算法用隊列直接模擬是相對很簡單的,也很適合在考試時使用,但是其它的調(diào)度算法就不一定了,需要用輔助的數(shù)組存儲信息之類的,符合原理地適時調(diào)整吧~
總結(jié)
以上是生活随笔為你收集整理的操作系统笔记(6):RR轮转调度算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 预训练模型简介
- 下一篇: 系统启动其实就2个步骤BIOS和MBR(