Der Klassen-Scheduler übernimmt im Rahmen der Job-Steuerung folgende Aufgaben:
Starten der Batch-Jobs
Wie das Bild 17 ("Job-Steuerung") zeigt, übergeben sämtliche Job-Scheduler ihre zum Start freigegebenen Jobs an den Klassen-Scheduler.
In Abstimmung mit der Task-Steuerung wird ein vom Job-Scheduler freigegebener Job vom Klassen-Scheduler sofort gestartet.
Überwachen der Job-Klassengrenzen
Mit der JMU-Anweisung DEFINE-JOB-CLASS und dem Operanden CLASS-LIMIT wird für jede Job-Klasse eine Grenze festgelegt, bis zu der Jobs gestartet werden können.
Die Systembetreuung hat damit – bezogen auf alle Job-Klassen – einen Job-Mix vereinbart, für dessen Einhaltung der Klassen-Scheduler verantwortlich ist. Wenn dem Klassen-Scheduler ein Job übergeben wird, überprüft er, ob das CLASS-LIMIT erreicht ist. Ist dies der Fall, wird der Job zurückgewiesen (Ausnahme: ein Job mit Start-Attribut IMMEDIATE).Sobald der Grenzwert wieder unterschritten ist, z.B. durch Job-Ende oder durch Erhöhung des Limits per Kommando MODIFY-JOB-CLASS, wird der entsprechende, die Job-Klasse verwaltende Scheduler informiert und ein Job an den Klassen-Scheduler weitergegeben.
Zwischenspeichern von Jobs bei Systemsättigung
Bei Sättigung des Seitenwechselbereichs oder des Hauptspeichers nimmt der Klassen-Scheduler von den einzelnen Schedulern zwar noch Jobs an, speichert sie aber in klassenspezifischen Warteschlangen zwischen.
Die Einreihung der Jobs in diese Warteschlangen erfolgt nach dem FIFO-Prinzip. Eine Ausnahme bilden die Jobs, die mit dem Start-Attribut IMMEDIATE (sog. Express-Jobs) versehen sind. Diese Jobs stehen in den Warteschlangen an vorderster Stelle. Treffen mehrere Express-Jobs beim Klassen-Scheduler ein, dann steht der zuletzt eingetroffene Job als erster in der Warteschlange.
Starten dieser Jobs nach Aufheben der Sättigung
Nach Aufheben der Sättigung startet der Klassen-Scheduler die Jobs, indem er eine Job-Klasse, deren Klassenoptimum noch nicht erreicht ist, mit dem kleinsten Wert M nach folgendem Algorithmus auswählt:
M = (C + 1) / W
Dabei bedeutet:
M | Rangfolge |
C | Anzahl der momentan in der Job-Klasse laufenden Jobs |
W | Gewichtung (Dringlichkeit) der Job-Klasse |
Der Klassen-Scheduler startet den Job, der als erster in der Warteschlange steht.
Nach jedem Job-Start und jeder Job-Beendigung muss der Klassen-Scheduler die Rangfolge erneut berechnen.
Bei Einsatz des Softwareprodukts PCS ist der Klassen-Scheduler mit dem Performance-Controller verbunden.