你不知道的事 關於多級反饋佇列MLFQ的一些細節

2021-09-19 08:53:13 字數 1767 閱讀 9157

多級反饋佇列的基本原理此處不再闡述了。這裡主要指出幾個我關注到的細節而網上大部分的部落格都沒有提到的,並不全面。更多多級反饋佇列的細節請參閱參考資料等。

程序可以大致分為cpu密集型的程序(cpu-bound jobs)和io密集型的程序(i/o-bound jobs),而一般而言,對於io密集型型程序,我們希望它更快得到處理。因為這類程序需要和使用者進行互動,占用cpu時間少,優先處理它們能夠使得電腦顯得執行得更快。因此,在程序排程過程中,我們總是希望io密集型程序的優先順序比cpu密集型程序高。cpu密集型程序在程序排程中,每當它用完了分配的時間片,就會像石頭一樣落到低一層的優先順序佇列中。

在舊一點的mflq規則中,可以看到對io密集型程序是非常「袒護」的。4a的效果即cpu密集型程序將逐漸降低其優先順序,讓io密集型程序先執行。4b則使得io密集型程序在io中斷後再次回到同一級的佇列中,盡快得到處理。(在有些程序排程演算法中,被io中斷的程序甚至會回到更高一級的優先順序佇列中,以獲得更快的處理。)

然而,rule 4a和4b會產生占用cpu時間長的程序被餓死的情況。「如果系統中有太多的互動作業,它們將聯合起來消耗所有的cpu時間,因此長時間執行的作業將永遠不會收到任何cpu時間(它們會餓死)。即使在這種情況下,我們也想在這些工作上取得一些進展。」同時,這也給了一些不懷好意的程式可乘之機。假如乙個程序總是在它的時間片即將結束前發起io中斷,那麼它就可以一直留在這一優先順序中,占用cpu資源。為了解決這兩個問題,我們把上面的規則修改一下,並增加rule 5。

rule 4:我們不再像基本的多級反饋佇列的規則一樣,每次重新進入一級佇列中,就分配乙個時間片來計時,而是計算每個程序在乙個優先順序佇列中執行的總時間。也就是,因為io中斷的程序在完成io操作後回到佇列中時,並不重新占有乙個新的時間片,而是繼續使用之前剩下的時間。這樣一來,所有的程序在用完分配的時間時就必須落入下一優先順序的佇列中,防止惡意占用cpu。

rule 5:經過一段固定的時間,把所有的程序都重新移入最高優先順序的佇列中(boost)。這解決了兩個問題:

防止執行時間長的程序被餓死。因為如果系統中有太多的互動作業,它們將聯合起來消耗所有的cpu時間,一直搶占執行,因此長時間執行的作業將收不到任何cpu時間,無法執行。而固定一段時間將所有程序放入最高優先順序的佇列,能夠保證所有程序都能夠得到cpu時間,而不會被餓死。

當乙個占用cpu多的程序成為乙個互動性的程序的時候能夠擁有高的優先順序。

maria hybinette, uga maria hybinette, uga. csci [4|6] 730 operating systems. cpu scheduling.

scheduling: the multi-level feedback queue (翻譯版:多級反饋佇列)

henri casanova ([email protected]). cpu scheduling ics332 — operating systems.

lass.cs.umass.edu. multilevel feedback queues (mlfq)

cs.umd.edu. cmsc 412: operating systems

multilevel feedback queue scheduling algorithm

C語言 你不知道的事(關於標頭檔案)

前言 我之前的稿子因為我嘗試著複製一大串 而崩潰了,大概1千來字,全都沒有了,現在這是從寫的。我的內心毫無波瀾,甚至還有點想笑 在我們剛開始學c語言時,我們都知道要在程式的第一行打 include 現在拿helloworld為例 include intmain 我們都知道要打 include書上給我...

關於提單,你不知道的事!

提單bill of lading b l 就代表貨物,一定要對提單有足夠的了解。基本知識和注意點 提單通常是3正3副,也有2正3副的。假如信用證有要求的話,要和貨代特別說明。t t付款方式時,理論上只需要一張正本就可以了 提貨後其他正本自動失效,副本不能提貨 t t收到全部貨款後,給客人寄正本時可以...

關於習慣,你不知道的奧秘

最近連續鍛鍊一周,自己熬過了自己的平台期之後,就會覺得很簡單,沒有當初咬牙堅持的難熬了 在之前不僅過程艱辛,而且次日還會引起痠痛,實在讓人很難不放棄啊!因此,就會在開始到平台期的路上,一直重複著立志 雞血 重啟 放棄的迴圈道路,陷入掙扎和痛苦的泥淖,不斷的消耗精力 時間 金錢以及自信力.變得沒有自信...