Für die Darstellung der verschiedenen Block- und Dateiformate sind die folgenden Begriffe zu unterscheiden:
PAM-Block
logischer Block (Datenblock)
Übertragungseinheit
PAM-Block:
Ein PAM-Block hat die Größe 2048 Byte + PAM-Key von 16 Byte. Nach Einführung des NK-Plattenformats hat es sich eingebürgert, unter einem PAM-Block auch eine Größe von 2048 Byte ohne PAM-Key zu verstehen. Ein PAM-Block wird auch als PAM-Seite oder 2-KB-Datenblock bezeichnet.
Logischer Block:
Ein logischer Block stellt einen zusammenhängenden Bereich von Daten/Sätzen dar. Seine Größe wird definiert im Kommando ADD-FILE-LINK, Operand BUFFER-LENGTH bzw. im Makro FILE, Operand BLKSIZE. Die Angabe kann durch *STD(SIZE=n) bzw. (STD,n) oder durch eine bestimmte Zahl n von Byte gegeben sein.
Bei der Angabe von (STD,n) wird bestimmt, dass ein logischer Block aus n 2048-Byte-Einheiten aufgebaut ist. (Soll eine Datei auf einer NK4-Platte allokiert werden, darf n nur eine gerade Zahl sein.)
Auf Bändern und Magnetbandkassetten ist daneben noch die explizite Längenangabe in Byte möglich. Allerdings stellt diese Angabe lediglich die maximale Länge eines logischen Blocks dar. Die tatsächliche Länge – kleiner gleich n-Byte – ergibt sich dann durch die Daten selbst.
Übertragungseinheit:
Die Übertragungseinheit gibt die Länge der Daten an, die mit einer physikalischen Ein-/Ausgabe zwischen Hauptspeicher und Platte transportiert werden.
Bei Platten ist die Übertragungseinheit gleich der Länge eines logischen Blocks. Bei NK2-Platten ist die Übertragungseinheit ein Vielfaches von 2 KB (kleinste Übertragungseinheit ist 2 KB), bei NK4-Platten ist die Übertragungseinheit ein Vielfaches von 4 KB (kleinste Übertragungseinheit ist 4 KB).
Bei Bändern sind zwei Fälle zu unterscheiden:
Die Blocklänge einer Datei ist mit BLKSIZE=(STD,n) im Makro bzw. mit BUFFER-LENGTH=*STD(SIZE=n) im Kommando definiert. Damit wird für Banddateien eine logische Blocklänge von n * 2 KB festgelegt. Die Übertragungseinheit ist in diesem Fall 2 KB. Es wird n-mal eine Einheit von 2048 Byte transportiert.
Es werden n Ein-/Ausgaben von je 2 KB durchgeführt.Die Blocklänge einer Datei ist mit BLKSIZE=n im Makro bzw. mit BUFFER-LENGTH=n im Kommando definiert. In diesem wird für Banddateien eine logische Blockgröße von n Byte festgelegt. Es wird eine Ein-/Ausgabe von n Byte durchgeführt. In diesem Fall stimmt auch bei Banddateien die logische Blockgröße mit der Übertragungseinheit überein.
Zur Unterstützung der verschiedenen Plattentypen bietet das DVS verschiedene Datei- und Blockformate an. Die beiden grundsätzlichen Blockformate sind:
Blockformat mit PAM-Schlüsseln
im Folgenden als K-Dateiformat (für Key-Dateiformat) bezeichnetBlockformate ohne PAM-Schlüssel
im Folgenden als NK-Dateiformate (für Non-Key-Dateiformate) bezeichnet
K-Dateiformat
Die block-spezifische Verwaltungsinformation (Blockkontroll-Information) wird im PAM-Schlüssel (16 Byte) geführt. 8 Byte des PAM-Schlüssels werden durch das System genutzt, weitere 8 Byte werden durch die höheren Zugriffsmethoden SAM und ISAM genutzt. Lediglich mit UPAM kann man über diesen „User“-Teil des PAM-Schlüssels verfügen.
Eine Nutzung dieses Teils des PAM-Schlüssels sollte vermieden werden, um eine Umstellung der Anwendung auf ein NK-Format zu vereinfachen.
Dieses Blockformat wird von allen Zugriffsmethoden außer DIV und FASTPAM unterstützt. Eine Datei kann im K-Format erstellt werden, sofern der Datenträger die Aufzeichnung des PAM-Schlüssels erlaubt (K-Pubset bzw. K-Privatplatte).
Nähere Informationen können den Abschnitten über die einzelnen Zugriffsmethoden entnommen werden.
BLOCK-CONTROL-INFO=*PAMKEY
Mit dem Kommando ADD-FILE-LINK, Operand BLOCK-CONTROL-INFO=*PAMKEY bzw. mit dem Makro FILE, Operand BLKCTRL=PAMKEY wird ein K-Format festgelegt.
Das folgende Bild veranschaulicht einen PAM-Block mit dem dazugehörigen PAM-Schlüssel.
NK-Dateiformate
Bei den NK-Formaten sind zwei Dateiformate zu unterscheiden, bei denen die block-spezifische Verwaltungsinformation innerhalb eines jeden Datenblockes liegt (Operand BLOCK-CONTROL-INFO=*WITHIN-DATA-2K-BLOCK/*WITHIN-DATA-4K-BLOCK im Kommando ADD-FILE-LINK; die Angabe *WITHIN-DATA-BLOCK umfasst 2K und 4K). Dieser Bereich steht für Benutzerdaten nicht zur Verfügung.
Darüber hinaus gibt es die Möglichkeit, ein NK-Dateiformat zu wählen, bei dem keine blockspezifische Verwaltungsinformation hinterlegt wird: BLOCK-CONTROL-INFO=*NO.
Bei den Zugriffsmethoden UPAM und SAM ist die block-spezifische Verwaltungsinformation immer 16 Byte lang (12 Byte Block-Kontrollfeld und 4 Byte Datenlängenfeld).
Bei einer NK2-ISAM-Datei (BLOCK-CONTROL-INFO=*WITHIN-DATA-2K-BLOCK) ist die block-spezifische Verwaltungsinformation in den ersten 16 Byte eines jeden 2-KB-Blockes hinterlegt.
Bei einer NK4-ISAM-Datei (BLOCK-CONTROL-INFO=*WITHIN-DATA-4K-BLOCK) ist die block-spezifische Verwaltungsinformation in den ersten 16 Byte eines jeden 4-KB-Blockes hinterlegt.
Bei der Konvertierung einer K-Datei zu einer NK-Datei ist Folgendes zu beachten:
Wird die maximale Satzlänge (16 PAM-Blöcke = 32 KB) ausgeschöpft, kommt es zu Inkompatibilitäten, da kein Platz mehr für die block-spezifische Verwaltungsinformation zur Verfügung steht.
Auf einer NK4-Platte können nur NK4-Dateien liegen.
Nähere Informationen können den Abschnitten über die einzelnen Zugriffsmethoden entnommen werden.
BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK
Mit dem Kommando ADD-FILE-LINK, Operand BLOCK-CONTROL-INFO= *WITHIN-DATA-BLOCK bzw. mit dem Makro FILE, Operand BLKCTRL=DATA, wird ein NK-Format festgelegt, wobei beim Anlegen der Datei eine NK2- oder eine NK4-Datei erstellt wird:
Beim Anlegen einer Datei wird folgendermaßen vorgegangen:
PAM- und SAM-Dateien:
Ist der Blockungsfaktor n eine ungerade Zahl, wird eine NK2-Datei angelegt. Ist der Blockungsfaktor n eine gerade Zahl, wird eine NK4-Datei angelegt.
ISAM-Datei:
Ist das Blockformat der ISAM-Datei nicht explizit angegeben (siehe unten), wird abhängig vom Plattenformat, auf dem die ISAM-Datei angelegt wird, eine NK2-ISAM-Datei oder eine NK4-ISAM-Datei angelegt.
Eine bereits bestehende Datei kann unabhängig vom Blockformat geöffnet werden.
Das folgende Bild veranschaulicht einen logischen Datenblock einer NK2-SAM-Datei (Länge 6 KB, Blockungsfaktor n=3; bl.V = block-spezifische Verwaltungsinformation).
BLOCK-CONTROL-INFO=*WITHIN-DATA-2K-BLOCK (für NK-ISAM-Dateien)
Mit dem Kommando ADD-FILE-LINK, Operand BLOCK-CONTROL-INFO=*WITHIN-DATA-2K-BLOCK bzw. dem Makro, FILE Operand BLKCTRL=DATA2K, wird explizit eine NK2-Datei erstellt (die Angabe kann auch für SAM und PAM erfolgen; sie wirkt dann wie *WITHIN-DATA-BLOCK).
Die block-spezifischen Verwaltungsinformationen sind in den ersten 16 Byte eines jeden 2-KB-Blockes hinterlegt.
Das folgende Bild veranschaulicht einen logischen Datenblock einer NK2-ISAM-Datei (Länge 6 KB, Blockungsfaktor n=3; bl.V = block-spezifische Verwaltungsinformation).
BLOCK-CONTROL-INFO=*WITHIN-DATA-4K-BLOCK (für NK-ISAM-Dateien)
Mit dem Kommando ADD-FILE-LINK, Operand BLOCK-CONTROL-INFO=*WITHIN-DATA-4K-BLOCK bzw. mit dem Makro FILE, Operand BLKCTRL=DATA4K, wird explizit eine NK4-Datei angelegt (die Angabe kann auch für SAM und PAM erfolgen; sie wirkt dann wie *WITHIN-DATA-BLOCK).
Die block-spezifische Verwaltungsinformation wird in den ersten 16 Byte eines jeden 4-KB-Blockes hinterlegt.
Eine NK4-ISAM-Datei kann auf beliebigen Platten erstellt werden.
Das folgende Bild veranschaulicht einen logischen Datenblock einer NK4-ISAM-Datei (Länge 12 KB, Blockungsfaktor n=6; bl.V = block-spezifische Verwaltungsinformation).
BLOCK-CONTROL-INFO=*NO
Mit dem Kommando ADD-FILE-LINK, Operand BLOCK-CONTROL-INFO=*NO bzw. mit dem Makro FILE, Operand BLKCTRL=NO, wird ein NK-Format festgelegt.
Das System hinterlegt keine block-spezifischen Verwaltungsinformationen, weder im PAM-Schlüssel, noch innerhalb des Datenblocks.
Dieses Format existiert nur für UPAM-Plattendateien, UPAM-Banddateien und SAM-Banddateien.
Bei SAM-Plattendateien und ISAM-Plattendateien wird die Angabe BLOCK-CONTROL- INFO=*NO bzw. BLKCTRL=NO intern in BLOCK-CONTROL-INFO=*WITHIN-DATA-BLOCK bzw. BLKCTRL=DATA umgewandelt.
Nähere Informationen können den Abschnitten über die einzelnen Zugriffsmethoden entnommen werden.
Das folgende Bild veranschaulicht einen logischen Datenblock einer NK2-PAM-Datei ohne block-spezifische Verwaltungsinformation (Länge 6 KB, Blockungfaktor n=3).
Zur Unterstützung der verschiedenen Plattentypen bietet das DVS verschiedene Datei- und Blockformate an. Bei der Festlegung des Dateiformats ist die Abhängigkeit der folgenden Dateieigenschaften voneinander zu beachten:
Dateistruktur
Blockstruktur
logische Blocklänge (Blockungsfaktor)
Tabelle der Kombinationsmöglichkeiten von Dateiformat und anderen Dateieigenschaften:
Dateiformat | Dateistruktur | Blockstruktur | logische Blocklänge | Blockungs-Faktor (n) | Platten-Format |
---|---|---|---|---|---|
K-Datei | PAM | PAMKEY | |||
SAM | |||||
ISAM | |||||
NK2-Datei | PAM | NO oder DATA | STD | ungerade | K-Platte |
SAM | DATA | STD | ungerade | ||
ISAM | DATA2K | ||||
DATA | NK2-Platte | ||||
NK4-Datei | PAM | NO oder DATA | STD | gerade | K-Platte |
SAM | DATA | STD | gerade | NK2-Platte | |
ISAM | DATA4K | STD | gerade | NK4-Platte |
Die minimale Allokierungseinheit wirkt sich nicht auf das Dateiformat aus.
Auf NK4-Platten können nur Dateien mit einem geradzahligen Blockungsfaktor abgelegt werden.
Das K-Dateiformat wird in allen bisher freigegebenen BS2000-Versionen unterstützt.