Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

EAM-Verarbeitung

Verwendung von Prüfoperationen

Nach einem Lese- oder Schreibaufruf erhält der Benutzer die Steuerung zurück, sobald die angeforderte Operation akzeptiert wird. Diese Operation braucht also noch nicht beendet zu sein.

Bevor eine Lese- oder Schreiboperation angestoßen wird, wird die Beendigung einer eventuell vorhergehenden Lese- oder Schreiboperation abgewartet (mit einer impliziten Prüf- und Warteoperation). Ebenso wird die Beendigung der letzten Lese- oder Schreiboperation abgewartet, wenn eine Schließoperation angefordert wurde.

Eine Prüfoperation ist also nur notwendig nach der letzten einer Reihe von Lese- oder Schreiboperationen, wenn die Datei nicht sofort wieder geschlossen wird oder wenn mit geketteter Ein-/Ausgabe bis zum Erreichen der Dateiendebedingung gelesen wird (im Fehlerbyte: IDMFIB oder IDMFEF = 1) und die Anzahl der übertragenen Blöcke not equal 0 ist.

Beispiel

In einer EAM-Datei werden 3 Leseoperationen durchgeführt. Die Datei wird danach nicht wieder geschlossen, weil sie für spätere Ein-/Ausgaben noch benötigt wird. Diese Ein-/ Ausgabeoperationen werden jedoch erst nach der Verarbeitung der gelesenen Blöcke angefordert:

LESEN
PRÜFEN/WARTEN              Die Beendigung der letzten Ein-/Ausgabe-
  .                        operation wird abgewartet.
  .
Verarbeitung der gelesenen Blöcke
  .
weitere Ein-/Ausgabeoperationen

Änderung von Verarbeitungseigenschaften

Beim Eröffnen oder Wiedereröffnen einer Datei werden folgende Angaben berücksichtigt:

  • gekettete/nichtgekettete Ein-/Ausgabe

  • Anzahl der zu übertragenden Blöcke

Soll eine dieser Angaben während der Dateiverarbeitung geändert werden, ist folgendes Vorgehen erforderlich:

  1. Datei schließen

  2. Felder im MFCB modifizieren

  3. Datei wieder eröffnen

Die Anzahl der zu übertragenden Blöcke ist z.B. dann zu ändern, wenn mit der letzten Schreiboperation weniger Blöcke übertragen werden sollen, als beim Eröffnen der Datei angegeben wurde.

Beispiel

In eine EAM-Datei sind 99 Blöcke zu schreiben. Es sollen jeweils 15 Blöcke gekettet übertragen werden (Byte IDMFNHP im MFCB). Folgende Operationen werden dann angefordert:

ÖFFNEN (neue Datei) -> SCHREIBEN -> SCHREIBEN -> SCHREIBEN -> SCHREIBEN -> SCHREIBEN -> SCHREIBEN -> SCHLIESSEN *) -> WIEDERERÖFFNEN -> SCHREIBEN -> SCHLIESSEN

*) Nach Ausführung der sechs Schreiboperationen sind noch 9 Blöcke zu schreiben. Deshalb muss die Datei geschlossen und wieder eröffnet werden mit dem Wert 9 für die Anzahl zu übertragender Blöcke.

Überlappte Ein-/Ausgabe

Die Verarbeitungszeit kann durch asynchrone Ein-/Ausgaben verkürzt werden. Nach Anstoßen einer Ein-/Ausgabeoperation wird die Steuerung sofort an das Programm zurückgegeben, wo parallel zur physikalischen Ein-/Ausgabe weitere Verarbeitung stattfindet.
Die nächste Ein-/Ausgabeoperation wird angestoßen für einen zweiten, sich mit dem ersten Bereich nicht überschneidenden Ein-/Ausgabebereich ... usw. Bild 1 zeigt die Überlappung von Verarbeitung und Eingabeoperationen.

Sequenzielles Lesen mit geketteter Eingabe

Gekettete Eingabe wird bei sequenziellem Lesen am wirkungsvollsten eingesetzt, wenn

  • als Anzahl der zu übertragenden Blöcke ein Vielfaches von 3 gewählt wird (3 n);

  • als Blocknummer eine Zahl der Form: (3n) + 1 (z.B. 1, 4, 7 ...) gewählt wird.

Hinweis

Zur Unterstützung der NK4-Pubsets wird vom EAM-Anwender gefordert, die gekettete Verarbeitung auf den Blockungsfaktor 2 oder ein Vielfaches von 2 umzustellen. In diesem Fall sollten bei direkten Ein-/Ausgabeoperationen ungerade Blocknummern (BLOCK#) angegeben werden, also 1, 3, 5, ...

Das so umgestellte Programm ist abwärtskompatibel und damit auch ablauffähig in Vorgängerversionen.

Bild 1: EAM - Überlappte Ein-/Ausgabe

Behandlung von Bindemoduldateien durch EAM

Jeder Auftrag kann genau eine Bindemoduldatei bearbeiten. Ist das Bit IDMFOO des Zusatzbytes gesetzt, beziehen sich alle Operationen auf die Bindemoduldatei. Folgendes Diagramm zeigt die Aktionen beim Eröffnen oder Wiedereröffnen einer Datei:

Bild 2: Aktionen bei EAM-Dateieröffnung

Bild 3: EAM - Ablauf beim Eröffnen der Bindemoduldatei