Sind zweistufige Scheduler nur nützlich, um das Austauschen zu verwalten?

10

Die Planung auf zwei Ebenen ist nützlich, wenn auf einem System mehr Prozesse ausgeführt werden, als in den Arbeitsspeicher passen: Ein Planer auf niedrigerer Ebene wechselt zwischen residenten Prozessen, und ein Planer auf höherer Ebene tauscht Gruppen von Prozessen ein und aus.

Ich finde keine andere Erwähnung der zweistufigen Planung in Andrew Tanenbaums Betriebssystemen: Design und Implementierung , 1. Aufl. In Übung 2.22 wird gefragt, warum eine zweistufige Planung verwendet werden kann. Ich weiß nicht, ob es sich um eine Leseverständnisprüfung handelt oder ob es andere Gründe gibt, die im Text nicht besonders erwähnt werden.

Ist die Planung auf zwei Ebenen nützlich, um neben dem Speicher auch andere Ressourcenkonflikte zu verwalten?

Gilles 'SO - hör auf böse zu sein'
quelle
1
Es ist vielleicht gut für Caches und Festplatten-E / A, aber das ist nicht "außer Speicher".
Raphael
Wie @Raphael sagt, aber mit anderen Worten, es vermeidet / reduziert Thrashing.
Dave Clarke

Antworten:

8

Es gibt andere Formen der zweistufigen Planung als den von Ihnen beschriebenen Typ. Beispielsweise könnte eine Planungsebene pro Benutzer und die andere pro Prozess sein, um einem Benutzer mit 20 Prozessen die gleiche CPU-Zeit wie einem Benutzer mit 1 Prozess zu geben. Mit einem einstufigen Scheduler kann jeder Prozess 1/21 der CPU-Zeit erhalten.

Eine andere Form der zweistufigen Planung könnte pro Prozess und pro Thread sein, um einem Prozess mit 20 Threads die gleiche CPU-Zeit wie einem Prozess mit 1 Thread zu geben.

Ellen Spertus
quelle