Eine I/O-intensive Anwendung mit niedriger Priorität kann eine andere, höher-priore Anwendung behindern, wenn diese Anwendungen I/Os auf das gleiche (logische) Gerät ausführen. Behinderungen können auch entstehen, wenn die I/Os auf verschiedene (logische) Geräte ausgeführt werden, die jedoch auf demselben physikalischen Gerät liegen oder über dieselben Pfade angeschlossen, über dieselben Ports erreichbar oder an denselben Kanälen angeschlossen sind.
Verbesserte Prioritätensteuerung für Tasks mit IOPT
IORM kann in der Funktion IOPT (I/O Priority Handling for Tasks) solche Konfliktsituationen erkennen und steuernd in den I/O-Betrieb eingreifen.
Dazu betrachtet IOPT sowohl den Auslastungsgrad der I/O-Einheiten (Geräte, Pfade, Ports und Kanäle) als auch die I/O-Prioritäten der nutzenden Tasks.
I/O-Prioritäten für Tasks
Es gibt drei I/O-Prioritäten für Tasks:
HIGH (hohe I/O-Priorität)
MEDIUM (mittlere I/O-Priorität)
LOW (niedrige I/O-Priorität)
Die I/O-Priorität für Tasks kann auf zwei Arten festgelegt werden:
Mit /
MODIFY-TASK-CATEGORIES
, OperandIO-PRIORITY=*HIGH/*MEDIUM/*LOW
. Dies ist die empfohlene Vorgehensweise.Das Kommando legt die I/O-Priorität für die Task-Kategorien fest.
Neben den vier Standardkategorien SYS, TP, DIALOG und BATCH kann es weitere Kategorien geben, deren Namen bei der Jobklassen-Definition vereinbart werden.Mit den IORM-Anweisungen IOPT_PRI_HIGH und IOPT_PRI_MED. Diese Einstellungen wirken aber nur, falls
IO-PRIORITY=*NONE
bei/MODIFY-TASK-CATEGORIES
wirksam ist (Standardwert).Die IORM-Anweisungen legen die I/O-Priorität aufgrund der Task-Prioritäten fest. Die Task-Prioritäten werden bei der Jobklassen-Definition und benutzerspezifisch im Benutzerkatalog festgelegt.
Vorgaben für die I/O-Einheiten
Mit der IORM-Anweisung IOPT_DEV_ADD können Plattengeräte festgelegt werden, auf die die IORM-Prioritätensteuerung Anwendung finden soll.
Mit den IORM-Anweisungen IOPT_LOW_xxx bzw. IOPT_MED_xxx können Grenzwerte bzw. I/O-Anteile für Tasks mit der Priorität LOW und MEDIUM in Bezug auf die I/O-Einheiten Gerät (xxx=DEV), Pfad (xxx=PTH), Port (xxx=POR) und Kanal (xxx=CHN) festgelegt werden.
Die in IORM dafür eingestellten Standardwerte entsprechen den Angaben in der ausgelieferten Parameterdatei SYSDAT.IORM.<version>
.
Es kann vorkommen, dass IORM eine Konfliktsituation auf einer physikalischen Platte nicht schnell genug erkennt, weil die Auslastung für die Pfade, Ports, Kanäle und logischen Geräte noch unterhalb der vorgegebenen Grenzwerte liegt. In diesem Fall kann es sinnvoll sein, alle logischen Geräte auf der physikalischen Platte zu einer Gerätegruppe in IORM zusammenzufassen (IOPT_GRP_ADD).
Ablauf von IOPT
IOPT ist zunächst deaktiviert. Nach seiner Aktivierung (IOPT_SET_ON=YES) sammelt IOPT für alle bekannten I/O-Einheiten laufend Auslastungswerte getrennt nach den I/O-Prioritäten HIGH / MEDIUM / LOW.
IOPT prüft periodisch, ob Tasks mit der I/O-Priorität LOW oder MEDIUM höher-priore Tasks (I/O-Priorität MEDIUM oder HIGH) in einer I/O-Einheit behindern. Wenn dies der Fall ist, dann wird für Tasks der betroffenen I/O-Priorität nur noch ein begrenzter Auslastungsgrad auf der I/O-Einheit zugelassen. Es werden damit in Abhängigkeit von der Auslastung der I/O-Einheit Tasks mit geringerer I/O-Priorität bei der Ausführung von I/Os auf Geräte, die zuvor mit IOPT_DEV_ADD für IOPT aktiviert wurden, „gebremst“.
IOPT wirkt nur lokal, sowohl im Native-Betrieb, als auch im BS2000-Gastsystem. Es werden nur Plattengeräte berücksichtigt.
Tasks für FDDRL, ARCHIVE, VOLIN und PAGING werden nicht gebremst.