FASTPAM ist eine Blockzugriffsmethode für NK4-Plattendateien. Sie bietet eine mit UPAM vergleichbare Funktionalität, wobei jedoch die Performance gegenüber UPAM erheblich verbessert wurde und Multi-Server-Systeme besonders berücksichtigt werden. FASTPAM zeichnet sich aus durch:
performante Ein-/Ausgaben auf Grund von Einsparungen von CPU-Befehlen
eine schmale, übersichtliche Schnittstelle
Unterstützung von Ein-/Ausgaben in Data Spaces
FASTPAM bietet eine Untermenge der Funktionalität von UPAM.
Die Performance-Gewinne resultieren im Wesentlichen daraus, dass Aktionen zur Vorbereitung von Ein-/Ausgaben aus dem Ein-/Ausgabe-Pfad herausgezogen und vor dem OPEN abgewickelt und unabhängig von einer einzelnen Ein-/Ausgabe durchgeführt werden.
Hierzu gehören:
Parameterlisten resident anlegen
Ein-/Ausgabepfade vorbereiten
Pufferbereiche resident anlegen
Die Ein-/Ausgabepfade bestehen aus dem gesamten vom System für eine Ein-/Ausgabe benötigten, residenten Speicher, zusammen mit allen beim Einrichten des Environments vorgenerierbaren Daten. In diesem Speicher werden z.B. vor den Ein-/Ausgaben die Kanalprogramme aufgebaut. Benutzerseitig wird der Parameterlisten- und IO-Area-Pool-Speicher fixiert (d.h. er ist nicht mehr seitenwechselbar und kann vom Benutzer nicht mehr freigegeben werden).
Über FASTPAM-Verwaltungsaufrufe richtet der Benutzer zwei Bereiche ein:
FASTPAM-Environment
FASTPAM-IO-Area-Pool
Das FASTPAM-Environment dient zur Aufnahme der FASTPAM-Parameterlisten, mit denen Ein-/Ausgabe-Aufträge erteilt werden. Außerdem gehören zum FASTPAM-Environment auch noch Speicherbereiche des Betriebssystems (Ein-/Ausgabepfade).
Der FASTPAM-IO-Area-Pool ist ein Bereich mit 4-KB-Puffern.
Falls der Aufrufer über die FASTPAM-Berechtigung verfügt (Eintrag im Benutzerkatalog), können diese Bereiche speicherresident gehalten werden. Diese FASTPAM-Bereiche können dateiübergreifend und, falls sie in Common-Memory-Pools liegen, auch task-übergreifend verwendet werden, sodass eine effiziente Nutzung des Betriebsmittels „residenter Speicher“ möglich ist. Die Größe des FASTPAM-Environments wird durch die Maximalzahl parallel durchzuführender Ein-/Ausgaben bestimmt.
Bei der FASTPAM-Schittstelle handelt es sich um eine SVC-Schnittstelle. Die Aufträge werden durch eine Parameterliste formuliert; Rückmeldungen über das Ergebnis erfolgen über einen Returncode in der Parameterliste (nicht über Exits).
Mit FASTPAM ist es möglich, Ein-/Ausgaben direkt in Datenräumen (Data Spaces) durchzuführen. Dazu werden IO-Area-Pools in Datenräume gelegt; allerdings lassen sich diese IO-Area-Pools nur nicht-resident anlegen.
Die Schnittstelle von FASTPAM bietet zwei Gruppen von Funktionen:
Verwaltungsfunktionen (Makro FPAMSRV)
Anlegen eines neuen FASTPAM-Environments bzw. Anschließen an bestehende FASTPAM-Environments und FASTPAM-IO-Area-Pools
Abbau bzw. Trennen einer Task von FASTPAM-Environments und FASTPAM-IO-Area-Pools
Öffnen und Schließen von Dateien
Zugriffsfunktionen (Makro FPAMACC)
synchrones Lesen und Schreiben von logischen Blöcken
asynchrones Lesen und Schreiben von logischen Blöcken
Warten auf die Beendigung asynchroner Ein-/Ausgabe-Aufträge
Benachrichtigung über die Beendigung asynchroner Ein-/Ausgabe-Aufträge
Als Anwendungsbereiche kommen in erster Linie systemnahe Software-Produkte in Betracht, bei der die Ein-/Ausgabe-Performance (Pfadlängen, Durchsatz) eine wesentliche Rolle spielt.
Band-Verarbeitung und Remote-File-Verarbeitung werden nicht unterstützt.
FASTPAM-Makros und ihre Funktionen
Zur Dateibearbeitung stehen die beiden Makros FPAMSRV und FPAMACC zur Verfügung, mit denen die entsprechenden Funktionen und Operationen ausgeführt werden können.
Makro | Funktion | Kurzbeschreibung |
---|---|---|
FPAMSRV | ENABLE ENVIRONMENT | Systemumgebung für FASTPAM-Bearbeitung vorbereiten |
ENABLE IOAREA POOL | IO-Area-Bereich für FASTPAM-Bearbeitung vorbereiten | |
OPEN FILE | Datei zur Bearbeitung mit FASTPAM öffnen | |
CLOSE FILE | (eine mit FASTPAM geöffnete) Datei schließen; hierbei kann auf Wunsch der Last Page Pointer angegeben werden. | |
DISABLE IOAREA POOL | IO-Area-Bereich für FASTPAM-Bearbeitung abbauen | |
FPAMACC | ACCESS FILE | (eine mit FPAMSRV) geöffnete Datei bearbeiten |