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