Zweistufiges Scheduling ist ein effizientes Scheduling-Verfahren, das zwei Scheduler verwendet, um das Prozess-Scheduling durchzuführen.

Lassen Sie es uns anhand eines Beispiels verstehen :
Angenommen, ein System hat 50 laufende Prozesse, alle mit gleicher Priorität, und der Speicher des Systems kann nur 10 Prozesse gleichzeitig aufnehmen. Es werden also immer 40 Prozesse ausgelagert und auf den virtuellen Speicher der Festplatte geschrieben. Das Aus- und Einlagern eines Prozesses dauert jeweils 50 ms.

Nehmen wir das obige Szenario mit einfacher Round-Robin-Planung auf: Jedes Mal, wenn ein Kontextwechsel auftritt, müsste ein Prozess eingelagert werden (die am längsten nicht verwendeten Prozesse werden eingelagert). Das Ein- und Auslagern kostet zu viel, und das unnötige Austauschen verschwendet viel Zeit des Planers.

Die Lösung des Problems ist also das zweistufige Scheduling . Beim zweistufigen Scheduling gibt es zwei verschiedene Scheduler:

1. Lower level scheduler
2. Higher level scheduler 


  1. Scheduler auf niedrigerer Ebene –
    Dieser Scheduler wählt aus, welcher Prozess aus dem Speicher ausgeführt wird.
  2. Übergeordneter Scheduler –
    Dieser Scheduler konzentriert sich auf das Ein- und Auslagern der Prozesse zwischen Festplatte und Speicher. Das Austauschen nimmt viel Zeit in Anspruch, daher führt es seine Planung viel seltener durch. Es lagert auch die Prozesse aus, die für lange Zeit im Speicher ausgeführt werden, und werden mit Prozessen auf der Festplatte ausgetauscht, die für lange Zeit nicht ausgeführt wurden.


Folgende Variablen werden verwendet:

  1. Reaktionszeit –
    Die Reaktionszeitvariable ist wichtig, da sie eine Ressourcenverknappung verhindert und ein Prozess abgeschlossen wird. Einige andere Prozesse müssen unnötig lange warten, wenn ein Prozess zu lange ausgelagert wird. Daher ist diese Variable essentiell.
  2. Größe des Prozesses –
    Größere Prozesse werden seltener ausgetauscht, da das Austauschen lange dauert. Da diese Prozesse größer sind, können nur einige von ihnen den Speicher mit dem Prozess teilen.
  3. Priorität –
    Der Prozess mit höherer Priorität bleibt länger im Speicher, damit er schneller abgeschlossen wird.