Diese drei Systemparameter sind aufeinander abgestimmt festzulegen. Sie dienen als Voreinstellungen für die Platzzuweisung beim Einrichten und Erweitern von Dateien. Die Werte gelten für alle Private Volumes. Für Pubsets gelten sie nur, wenn im MRSCAT-Eintrag des Pubsets nichts anderes festgelegt wurde. Zusätzlich wird die beim Einrichten des Pubsets mit SIR angegebene Allocation-Unit abhängig vom Datenformat (K, NK2, NK4) berücksichtigt.
Dabei wird in folgender Reihenfolge nach definierten Werten gesucht:
Direkte Angabe in den Kommandos /CREATE-FILE oder /MODIFY-FILE-ATTRIBUTES
Eintrag im MRSCAT
Erfolgt die Angabe mit /MODIFY-MASTER-CATALOG-ENTRY (Operand ALLOCATION),
so wird die Änderung erst nach dem nächsten Importieren des Pubsets gültig.Bei Verwendung von /MODIFY-PUBSET-SPACE-DEFAULTS
(Operand PRIMARY-ALLOCATION / SECONDARY-ALLOCATION / MAX-ALLOC) wird die Vereinbarung sofort gültig.
Angabe über Systemparameter
Wenn die so ermittelten Werte kein Vielfaches der beim Einrichten des Pubsets mit SIR festgelegten Allocation Unit sind, dann werden sie auf das nächste Vielfache aufgerundet.
Primärzuweisung
Parametername | Werte-Bereich | STD-Wert |
DMPRALL | 3...65535 | 3 |
Primärzuweisung für eine Datei in PAM-Blöcken, wenn bei /CREATE-FILE oder /MODIFY-FILE-ATTRIBUTES (bzw. im FILE-Makro) der Operand SPACE nicht versorgt wurde.
Sekundärzuweisung
Parametername | Werte-Bereich | STD-Wert |
DMSCALL | 3...65535 | 3 |
Sekundärzuweisung für eine Datei in PAM-Blöcken, wenn bei /CREATE-FILE oder /MODIFY-FILE-ATTRIBUTES (bzw. im FILE-Makro) diese im Operand SPACE nicht versorgt wurde.
Nach jeder Dateierweiterung wird der Betrag des Zuwachses verdoppelt gegenüber dem Wert bei der vorherigen Erweiterung. Secondary-Allocation (SA) bei (i+1)-ter Erweiterung gleich zweimal Secondary-Allocation bei i-ter Erweiterung: SA(i+1) = 2 * SA(i).
Diese Formel wird so lange angewendet, bis der doppelte Wert der aktuellen Sekundärzuweisung den Wert DMMAXSC überschreitet. Danach gilt: SA(i+1) = SA(i).
Maximalwert
Parametername | Werte-Bereich | STD-Wert |
DMMAXSC | 3...65535 | 48 |
Wenn der doppelte Wert der aktuellen Sekundärallokierung den Wert von DMMAXSC überschreitet, dann wird der Wert für die Sekundärallokierung nicht mehr verändert.
Beispiel
Dateierweiterungen mit den Werten: DMPRALL 15, DMSCALL 3, DMMAXSC 48.
In diesem Beispiel könnte DMMAXSC jeden Wert von 48 bis 96 enthalten, ohne dass sich das Verhalten ändert.
15+3=18 (1. Dateierweiterung)
18+6=24 (2. Dateierweiterung)
24+12=36 (3. Dateierweiterung)
36+24=60 (4. Dateierweiterung)
60+48=108 (5. Dateierweiterung)
108+48=156 (6. Dateierweiterung, keine Veränderung der Sekundärallokierung, da der Wert dann größer wäre als DMMAXSC)
Die kleinste Allocation-Unit beträgt für Private Volumes 3 PAM-Blöcke und für Pubsets 3 PAM-Blöcke (K- und NK2-Format) bzw. 4 PAM-Blöcke (NK4-Format)
Jede dynamische Dateierweiterung führt zu einer Reihe von Verwaltungs-Ein-/Ausgaben im System (Aktualisierung der Einträge in der Benutzerkennung, im Dateikatalog, im F1-Kennsatz bei Private Volumes) und verursacht somit einen beträchtlichen Systemaufwand. Um diesen Aufwand zu minimieren, sollte der DMSCALL-Parameter auf mindestens vier Allocation-Units gesetzt werden.
Um die Anzahl der dynamischen Dateierweiterungen zu reduzieren (bzw. zu vermeiden), steht jedem Anwender bei /CREATE-FILE und /MODIFY-FILE-ATTRIBUTES der Operand SPACE=*RELATIVE(PRIMARY-ALLOCATION=xx,SECONDARY-ALLOCATION=yy) zur Verfügung.
Beispiel
Ein Programm schreibt mit dem PAM-Makroaufruf sequenziell 456 Blöcke. Mit dem AINF-Makroaufruf wird die Anzahl der Ein-/Ausgabe-Operationen ermittelt.
/CREATE-FILE ... , SPACE=REL ( ... ) | Anzahl phys. IOs | Anzahl Extents lt. | |
PRI-ALLOC= | SEC-ALLOC= | ||
3 | 3 | 480 | 20 |
6 | 6 | 476 | 18 |
30 | 30 | 467 | 9 |
192 | 192 | 459 | 3 |
456 | 30 | 456 | 1 |
Abhängig von der jeweiligen Plattenbelegung können die Ergebnisse etwas streuen.