Multilevel Feedback Queue
Från Rilpedia
Multilevel Feedback Queue (MFQ) kan på svenska översättas till "flernivåskö med återkoppling" och är en schemaläggningsalgoritm som används inom datavetenskap.
Algoritmen fungerar så att alla processer blir placerade i en kö baserat på den prioritet den har. Första processen i kön får sedan köra en viss tidsperiod. När denna tidsperiod uppnåtts flyttas inte processen längst bak i kön, som i fallet med Round Robin, utan placeras in i kön på den plats där dess ursprungliga prioritet placerar den. Därefter ökas alla processers prioriteter på med ett och nästa process får köra.
Exempel
Fyra processer har olika prioriteter och ska köra:
Process | Ursprungsprioritet | Prioritet |
---|---|---|
P1 | 5 | 5 |
P2 | 4 | 4 |
P3 | 3 | 3 |
P4 | 1 | 1 |
P1 kör först en stund. Sedan ökas alla prioriteter på och P1 sätts in igen, fortfarande på första plats:
Process | Ursprungsprioritet | Prioritet |
---|---|---|
P1 | 5 | 5 |
P2 | 4 | 5 |
P3 | 3 | 4 |
P4 | 1 | 2 |
Efter att P1 fått köra igen ökas alla prioriteter på igen, och P1 sätts in. Nu hamnar den däremot på andra plats, och P2 får därför köra.
Process | Ursprungsprioritet | Prioritet |
---|---|---|
P2 | 4 | 6 |
P1 | 5 | 5 |
P3 | 3 | 5 |
P4 | 1 | 3 |
Därefter ökas prioriteterna, och P2 hamnar ända nere på 3:je plats. P1 får köra igen.
Process | Ursprungsprioritet | Prioritet |
---|---|---|
P1 | 5 | 6 |
P3 | 3 | 6 |
P2 | 4 | 4 |
P4 | 1 | 4 |
Och så vidare. Resultatet kommer att bli följande ordning:
P1, P1, P2, P1, P3, P1, P2, P4, P1, P3 osv...