※ 引述《ceo890710 (Drinking)》之銘言:
: 恐龍習題
: Consider a system implementing multilevel queue scheduling.What strategy
: can a computer user employ to maximize the amount of CPU time allocated
: to the user's process?
: Ans : The program could maximize the CPU time allocated to it by not
: fully utilizing its time quantums.It could use a large fraction of
: its assigned quantum,but relinquish the CPU before the end of the
: quantum,thereby increasing the priority associated with the process.
: 我想問解答部分應該是說像feedback queue這種因為無法一次執行完工作
: 然後會提高優先權而移到其他queue裡面的這種情況吧?
: 可是題目是說multilevel queue,可以在單一queue裡面提高優先權然後
: 在下一次工作給予較大的quantum嗎?
應該可以,這是變種的RR
恐龍的習題有(我是看電子檔解答的,我的書沒有= = 應該是國際版差別)
我買的補習班筆記也有補充到
你說的也就是在RR中加入priority的概念
有兩種辦法
1.將比較高priority的process插入比較多的PCB pointer
2.讓比較高priority的process擁有比較多的time quantum(例如給2個或更多)
但解答也沒詳細說怎麼使高priority的process獲得比較多的quantum
如果是再造一個queue如同MFQ的話...如同你的問題 (崩潰)
我想的到的解釋是
就當成他是某個queue裡面的子queue....= ="
把它當成單一queue的scheduling法則,而不是整體的queue
也就是他怎麼排都還是在此queue裡面,而沒移動到別的queue
很爛的解釋方法但我也只能想到這樣= =
另外我想趁機問一下這題
因為我的理解跟c大不同
我的想法是
題目問的是如何讓user's process獲得最多的CPU time
又multilevel queue最常見的模型是foreground(RR)跟background(FCFS)
user's process應該是被置於前者
因此,他是與foreground queue的其他process競爭CPU使用權
而為了讓user's process獲得較多的cpu time
因此設計讓此process 只使用time quantum的一大部分
而在quantum結束前釋放cpu並結束此quantum
然後增加此process的priority....
我不懂的是,為什麼這樣就會增加process的priority
如果是這樣,應該在此RR queue再加入priority的法則
process若同時滿足
1.並未完全使用全部quantum
2.且此process尚未執行完畢
則提升此process的priority
如此一來,此process的burst time若 >= 一個quantum
則由於他的priority提高
使用最前面說的兩種方式,就可以提升user's process分配到的cpu time
(也許是被run比較多次 by increase PCB pointers
或下次再run時被分配到的time quantum為2個或更多)
這是我的想法,但恐龍提到的只有前面,也就是不完全使用quantum即跳出的部分
但是沒有後面這些...即使跳出,也還是到queue的tail
就算是一直有process進到queue中
假使有很多是在他提早跳出到正常跳出之間進來的
那的確會比正常跳出更快分配到下次的cpu time
但也沒提到阿.....
而且照我這樣理解的話,這題跟multilevel也沒啥關係
直接問RR的狀態下不就好了= =
不曉得是我搞錯題意,還是有什麼盲點或其他問題
感謝高手解答
感激萬分...想好久還是想不通
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.27.250.59
※ 編輯: genius945 來自: 114.27.250.59 (10/16 02:09)