Während die Job-Steuerung alle Jobs verwaltet, werden alle Tasks von der Task-Steuerung gesteuert und verwaltet.
Die zentralen Aufgaben der Task-Steuerung lassen sich wie folgt zusammenfassen:
Tasks erzeugen
Unterbrechungsanalyse und -bearbeitung
Verwaltung der Registersicherstellungsbereiche
Versorgung zentraler Tabellen des Ablaufteils
Tasks aktivieren
Tasks initiieren
Tasks innerhalb und zwischen den Warteschlangen bewegen
Tasks deaktivieren
Tasks beenden
Unter dem Namen PRIOR sind nun jene Routinen der Task-Steuerung zu verstehen, die folgende Steuerungen übernehmen:
die Steuerung von Tasks mittels Kategorien und Task-Scheduling-Prioritäten
die Steuerung der System-Auslastung durch interne Regelfunktionen
Die Tasks sind allgemein Träger für unterbrechbare Abläufe in BS2000, wobei zwischen Benutzer- und Systemtasks unterschieden wird.
Benutzertask
Als Benutzertask werden alle – auch privilegierte – Benutzer-Jobs geführt, die von der Job-Steuerung der Task-Steuerung übergeben worden sind als:
Dialogtask (Teilnehmerbetrieb; Task-Typ X'40')
Batchtask (Batch-Betrieb; Task-Typ X'20')
Systemtask
Systemtasks nehmen die unterschiedlichsten Systemaufgaben wahr, wobei einige permanent sind (TCB im Klasse-1-Speicher vorgeneriert), die meisten jedoch dynamisch bei Bedarf erzeugt und wieder beendet werden.
Diesen Systemtasks sind vorgegebene Task-Identifier (TID) und TSNs zugeordnet, nach denen sie eindeutig identifiziert werden können.
Die wichtigsten Systemtasks, permanente und dynamisch (während Startup oder bei Bedarf) erzeugte, sind in den folgenden Übersichten zusammengefasst.
TID | TSN | Aufgaben |
0001 0001 | TSC | Emergency Job Scheduler $SYSJS für die Job-Klasse $SYSJC, in der insbesondere alle anderen Job Scheduler laufen. |
0001 0003 | RMM | Prüfung des Hauptspeichers bei Startup |
0001 0005 | PT5 | Periodic Task 5: Prüft alle 10 Sekunden u.a. die LIFETIME |
0001 0006 | PT6 | Periodic Task 6 des Job-Managements: Für Operationen, die zu einem bestimmten Zeitpunkt („AT“) durchgeführt werden sollen; Überprüfen der Repeat-Jobs (Intervall abgelaufen ?) |
0001 0007 | PGE | Paging Error Recovery Task |
0001 0008 | UCO | Universelle Konsole UCON: Verteilt die Konsolkommandos und Meldungen an die zuständige Instanz (Operator-Task für Operator-Normalkommandos; |
0001 0009 | REK | Zuständig für Rekonfiguration |
0001 000A | VMM | Memory Management Task: Verwaltet die Slotpools; z.B für Stacks, Börsenkontrollblöcke |
0001 000B | MSG | Zuständig für Meldungswesen |
0001 000C | KTT | Konsol Treiber Task: Ein-/Ausgabe-Treiber für Konsolgeräte |
Tabelle 28: Permanente (preallocated) Systemtasks
TSN | gehört zu den ... | Aufgaben |
RUNT | Operatortask: Zum Bearbeiten von aus einer RUN-Datei stammenden Operator-Normalkommandos | |
Xxxx | Allgemeine Arbeitstasks des Systems, z.B. MSCF-Servertask, Import-/Exporttask, Operatortask (Bearbeitung und Ausführung der Operator-Normalkommandos) | |
CLOG | Konsol-Logging (SYS.CONSLOG) | |
RP01 | SRPM-Task; verwaltet den Benutzerkatalog des Home-Pubsets | |
RP02 | SRPM-Task; verwaltet den Benutzerkatalog aller anderen Pubsets | |
HELT | Verwaltet die Hardware-Fehlerdatei SYS.HEL.<datum>.<uhrzeit> | |
HERS | HERS-Task; veranlasst HEL-Einträge bei Maschinenfehlern | |
SERS | Verwaltet die Fehlerdatei SYS.SERSLOG.... | |
REPL | Führt die Loggingdatei REPLOG und protokolliert Rep before | |
DSSM | Tasks der dyn. | Dynamic Subsystem Monitor |
NKA | Tasks des Nucleus | Betriebsmittelverwaltung |
ACCT | Tasks des | Bearbeitet die Abrechnungsdatei |
BCAM | Tasks der | Nachrichtenpoolverwaltung; Verarbeitung der /BC-Kommandos |
DIAA | TIAM-Task: erzeugt Dialog-Tasks | |
DBxx | Tasks des Disk Access Buffers DAB | |
DRV | Task des Softwareprodukts DRV | |
SNAP | SNAP-Task für die Realisierung der Funktion SNAP-Dump | |
S SPAx RSO | Systemtasks von | Spool-Scheduler; erzeugt Spool-Tasks und versorgt sie mit Jobs, zuständig für die Spool-Kommandos |
M | New Message Handler | |
ISDS | Verwaltung der ISAM-Pools | |
IOTD | Tasks zur Ein-/Ausgabeverwaltung bei Rekonfiguration von Platten (IOTD) und Bändern (IOTT) | |
JOBP | Job-Pool-Controller-Task: Verwaltung der Job-Pool-Datei für Batch-Jobs | |
TSNA | TSN-File-Manager: Verwaltung der Datei TSOJOIN.TSNN | |
TIME | Timer-Management: Uhrensynchronisation mit externem Zeitgeber zur Sommer-/Winterzeitumstellung | |
DRTx | Domänen-Rekonfigurationstasks auf SU x86 | |
MSCF | Systemtasks des | Tasks für die Realisierung der MRS-Kopplung |
FTCP | Task des Softwareprodukts | File Transfer Control Process (zentrale FT-Steuertask) |
SM2G | Systemtasks des | Software-Monitor-Erfassungs-Task |
SATP SATT | Systemtasks des | SAT-Parameterdatei-Verwaltung |
Tabelle 29: Wichtige, dynamisch erzeugte Systemtasks
Task-Kategorien
Jede Task ist einer Kategorie zugeordnet. Neben den vier Standardkategorien SYS, TP, DIALOG und BATCH unterstützt die Task-Steuerung 12 weitere Kategorien, deren Namen bei der Definition der Job-Klassen vereinbart werden.
Für die vier Standardkategorien gilt:
SYS TP DIALOG BATCH | nur für Systemtasks für Transaktions-Tasks (Teilhaberbetrieb) für Dialogtasks (Teilnehmerbetrieb) für Batch-Tasks (Batch-Betrieb) |
Zusätzlich gibt es vier Task-Attribute, deren Namen identisch sind mit den Standardkategorienamen SYS, TP, DIALOG und BATCH. Den Task-Attributen sind spezielle, für das Task-Scheduling wichtige Ablaufparameter zugeordnet.
Das Task-Attribut TP zeichnet sich gegenüber den anderen Task-Attributen durch eine speziell auf die Bedürfnisse des Teilhaberbetriebs optimierte Hauptspeicher-Verwaltung aus. Dieses Attribut kann entweder durch Definition in der den Jobs zugeordneten Job-Klassen oder durch Aufruf des TINF-Makros (siehe Handbuch „Makroaufrufe an den Ablaufteil“ [30]) erlangt werden. Die dazu notwendige Berechtigung muss im Benutzerkatalog eingetragen sein.
Das Konzept der Task-Kategorien ist nur der Systemverwaltung (im Ausnahmefall auch dem Operator) über die Kommandoschnittstelle zugänglich.
Mit dem MODIFY-TASK-CATEGORIES-Kommando spezifiziert die Systembetreuung die Wichtigkeit der Kategorien untereinander für die Aktivierung (= Zuteilung des Betriebsmittels Hauptspeicher).
Zu diesem Zweck werden folgende Kategorie-Attribute vereinbart:
WEIGHT MINMPL MAXMPL IO-PRIO | Wichtigkeit (Gewicht) Minimum an aktiv zu haltenden Tasks Maximum an aktiv zu haltenden Tasks I/O-Priorität aller Tasks dieser Kategorie |
Ob eine Task-Aktivierung, -Deaktivierung oder -Verdrängung durchgeführt wird, ist neben den Kategorie-Attributen noch abhängig von der System-Auslastung und der Priorität der betroffenen Task.
Da einer Kategorie in der Regel mehrere Tasks zugeordnet sind, ist die Kategoriensteuerung immer gruppenspezifisch zu betrachten. Will man eine Beurteilung der Auswirkungen der Kategoriensteuerung versuchen, so ist zwischen den folgenden Situationen zu unterscheiden:
Im Unterlast- bzw. Normallast-Bereich hat die Kategoriensteuerung keinen nennenswerten Einfluss.
Im Vollast- bzw. Überlast-Bereich (also bei Betriebsmittelengpässen) hat sie eine starke Wirkung und dient zur Lastbegrenzung, d.h. weniger wichtige Kategorien werden in den Hintergrund gedrängt.
Mit dem Kommando MODIFY-TASK-CATEGORIES, Operand IO-PRIORITY, kann die I/O-Priorität aller Tasks der angegebenen Katagorie bestimmt werden. Dieser Wert wird nur ausgewertet, wenn das Subsystem IORM gestartet ist. Die Voreinstellung *NONE bedeutet, dass alle Tasks dieser Kategorie eine aus der Task-Priorität abgeleitete I/O-Priorität erhalten (implizite I/O-Priorität). Die I/O-Prioritäten werden ausschließlich vom Subsystem IORM zur task-spezifischen Steuerung von Ein-/Ausgaben ausgewertet und zwar mit Ablaufsteuerung sowohl durch PRIOR als auch durch das Subsystem PCS.
Mit dem Kommando MOVE-TASK-TO-CATEGORY kann die Systembetreuung die Zuordnung einer Task zu einer Kategorie ändern, wenn etwa eine andere (bessere) Bedienung dieser Task oder auch eine Entlastung einer Kategorie erreicht werden soll (mit oder ohne Einsatz von PCS).
Zielkategorien müssen JMS-Kategorien und dürfen keine Folgekategorien sein. Die Kategorie SYS wird weder als Ausgangs- noch als Zielkategorie unterstützt.
Die Wahl geeigneter Kategorienwerte ist häufig ein Problem. Deshalb empfiehlt es sich (vor allem für große Server) über längere Zeiträume hinweg Performance-Untersuchungen durchzuführen. Die dazu notwendigen Daten liefert der Software Monitor openSM2 (siehe Handbücher „openSM2“ [49] und „SM2-PA“ [50]). Weitere Informationen enthält das „Performance-Handbuch“ [37].
Kommando | Bedeutung |
ADD-USER | Eintrag im Benutzerkatalog erstellen mit der Vereinbarung, ob die Tasks des Benutzers deaktiviert werden dürfen oder nicht |
CANCEL-JOB | Benutzerauftrag abbrechen |
CHANGE-TASK-CPU-LIMIT | Maximale CPU-Zeit eines Batch-Jobs erhöhen |
CHANGE-TASK-PRIORITY | Job- oder Task-Priorität ändern |
ENTER-JOB | Kommandofolge, die in einer ENTER-Datei als Batch-Job gespeichert ist, unter Angabe der Task-Priorität starten |
FORCE-JOB-CANCEL | Benutzerauftrag abbrechen |
HOLD-TASK | Benutzerauftrag anhalten |
MODIFY-TASK-CATEGORIES | Verteilung der Betriebsmittel CPU, Hauptspeicher und I/O-Prozessor auf die einzelnen Kategorien regeln, Dringlichkeiten der Kategorien festlegen und I/O-Prioritäten für alle Tasks einer Kategorie vergeben |
MOVE-TASK-TO-CATEGORY | Kategorie-Zuordnung einer Task ändern |
RESUME-TASK | Angehaltenen Benutzerauftrag freigeben |
SET-LOGON-PARAMETERS | Dialog-/Batch-Job unter Angabe der Task-Priorität einleiten |
SHOW-JOB-STATUS | Informationen über einen Benutzer-Job anfordern |
SHOW-SYSTEM-STATUS | Informationen über Job-Klassen und Job-Streams anfordern |
SHOW-USER-ATTRIBUTES | Maximale Task-Priorität abfragen |
SHOW-USER-STATUS | Informationen über Gruppen von Benutzer-Jobs anfordern |
Makro | Bedeutung |
PASS | eine Sekunde warten |
TINF | Task-Attribute lesen und ändern |
TSPRIO | Runprioritäten ausgeben |
VPASS | warten |
Tabelle 30: Schnittstellenübersicht zur Task-Steuerung