Natural Buffer Pool

Der Natural Buffer Pool mit gemeinsam genutztem Speicher dient als Zwischenspeicher, in den Natural katalogisierte Objekte (z.B. Programme) aus einer Natural-Systemdatei zur anschließenden Ausführung durch das Natural-Laufzeitsystem und/oder zur Objektkompilierung durch den Natural-Compiler lädt.

Da Natural ablauf-invarianten Natural-Objektcode generiert, kann eine einzige Kopie eines Naturalobjekts von mehr als einem Benutzer zeitgleich ausgeführt werden. Dazu wird jedes Objekt nur einmal von einer der Natural-Systemdateien in den Natural Buffer Pool geladen, anstatt von jedem Benutzer, der das Objekt anfordert, geladen zu werden.

Dieser Abschnitt behandelt grundlegende Gesichtspunkte für den Betrieb des Buffer Pools und veranschaulicht den Objektladevorgang:


Objekt in den Buffer Pool laden

Das Laden des Objekts in den Buffer Pool wird ausgelöst, wenn ein ausführbares Natural-Objekt zur Ausführung angefordert wird.

Wird die Ausführung eines Objekts angefordert, dann wird das entsprechende katalogisierte Objekt von der Natural-Systemdatei, in der es gespeichert ist, gelesen und in den Buffer Pool geladen, in dem es durch das Natural-Laufzeitsystem ausgeführt werden kann.

Neben ausführbaren Natural-Objekten werden auch nicht ausführbare Objekte des Objekttyps Data Area (Local, Global, Parameter) in den Buffer Pool geladen, wenn ein Natural-Objekt, das eine solche Data Area referenziert, katalogisiert oder neu katalogisiert (kompiliert) wird.

Verwandtes Thema:

Objekt aus dem Buffer Pool entfernen

Objekte werden aus dem Buffer Pool entfernt, sobald sie nicht mehr von einem Benutzer referenziert werden und der Platz zum Laden neuer Objekte benötigt wird. Dadurch wird die maximale Ausnutzung des im Buffer Pool verfügbaren Speicherplatzes gewährleistet.

Falls ein Buffer Pool Cache vorhanden ist, werden die nicht benutzten Objekte vom Buffer Pool in den Cache-Speicher ausgelagert. Wenn ein nicht benutztes Objekt auch aus dem Cache entfernt wird oder wenn kein solcher Cache existiert, wird das betreffende Objekt erneut von der entsprechenden Natural-Systemdatei geladen, sobald es wieder von einem Benutzer referenziert wird.

Beispiel für das Laden und Ausführen eines Objekts

Das folgende Diagramm veranschaulicht den Vorgang des Ladens und Ausführens eines Natural-Programms:

Legende

Ein Benutzer setzt das Natural-Systemkommando EXECUTE ab und fordert die Ausführung eines Natural-Objekts des Typs Programm mit dem Namen PGM01 an.

Der Natural-Kommando-Interpreter interpretiert das Kommando und gibt die Anforderung an das Natural-Laufzeitsystem weiter.

Das Natural-Laufzeitsystem übergibt die Anfrage an den Object Loader.

Der Object Loader weist den Buffer Pool Manager an, den Buffer Pool (und, falls vorhanden, den Buffer Pool Cache) nach dem Objekt PGM01 zu durchsuchen und die Adresse festzustellen, unter der das Objekt im Buffer Pool bzw. im Cache gespeichert ist.

Findet der Buffer Pool Manager die Buffer-Pool-Adresse von PGM01, wird die Adresse vom Buffer Pool an den Object Loader übergeben und die Ausführung wird mit Schritt fortgesetzt.
Findet der Buffer Pool Manager die Buffer-Pool-Adresse von PGM01 nicht, meldet der Buffer Pool Manager das negative Ergebnis der Suche an den Object Loader zurück und die Ausführung des Objekts wird mit Schritt fortgesetzt.

Der Object Loader ruft das katalogisierte Objekt von PGM01 aus der entsprechenden Systemdatei ab.

Der Object Loader übergibt das katalogisierte Objekt von PGM01 an den Buffer Pool Manager.

Der Buffer Pool Manager lädt PGM01 in den Buffer Pool.

Der Buffer Pool Manager gibt die Buffer-Pool-Adresse von PGM01 an den Object Loader zurück.

Der Object Loader übergibt die Buffer-Pool-Adresse von PGM01 an das Natural-Laufzeitsystem.

Das Natural-Laufzeitsystem interpretiert den kompilierten Code des katalogisierten Objekts PGM01 und führt ihn aus.

Verwandte Themen

Die folgenden Abschnitte in der System-Architektur-Dokumentation nehmen Bezug auf den Natural Buffer Pool:

Die folgenden Abschnitte in anderen Natural-Dokumentationen betreffen den Natural Buffer Pool: