Allgemeines
Anwendungsgebiet: | Arbeiten mit virtuellem Speicher; siehe "Arbeiten mit virtuellem Speicher"; Memory Pool Technik; siehe "Gemeinsamer Speicherbereich für mehrere Anwender |
Makrotyp: | S-Typ, MF-Format 1: Standardform/E-Form/L-Form; siehe "S-Typ-Makroaufrufe" |
Das Betriebssystem verwaltet den virtuellen Arbeitsspeicher seitenweise (das betrifft u.a. Seitenwechsel (Paging), Speicherschutz, Anfordern und Freigabe von Speicherseiten).Eine Speicherseite umfasst 4 KB (=4096 Byte). Das Programm des Anwenders belegt Speicherplatz in Einheiten von je einer Speicherseite im Klasse-6-Speicher.
Makrobeschreibung
Mit dem Makro CSTAT verändert der Anwender die Attribute seiner Klasse-6-Speicherseiten in Bezug auf
Seitenwechsel (Speicherseiten resident oder seitenwechselbar)
Zugriffsart (Lese-/Schreibzugriff)
spezieller Zugriffsschutz (Zugriffe über AID, DUMP nur mit besonderer Privilegierung)
Für Speicherseiten in einem Memory Pool ist zu beachten:
Speicherseiten eines residenten Memory Pools können mit einem CSTAT-Aufruf nicht seitenwechselbar gemacht werden (s. auch Makro ENAMP). Es werden bei Makroausführung nur die Speicherseiten berücksichtigt, die außerhalb des Memory Pools liegen.
Speicherseiten eines nichtresidenten Memory Pools können von jedem Memory-Pool-Teilnehmer mit CSTAT resident und im weiteren Ablauf auch wieder pageable gemacht werden.
Bezüglich der Änderungen der Zugriffsrechte hat der Makro CSTAT eine niedrigere Priorität als der Makro CSTMP:
Mit CSTMP eingerichteter Schreibschutz für einen Memory Pool kann mit CSTAT nicht aufgehoben werden; auch nicht für die Seiten, deren Schreibschutz mit CSTAT vor Aufruf von CSTMP eingerichtet wurde.
Makroaufrufformat und Operandenbeschreibung
CSTAT |
PGNUM=wert / ALL / (r) [,ACCESS=READ / WRITE / (r)] [,PAGE=YES / NO / (r)] [,PROTECT=YES] [,MF=(E,..) / L] |
PGNUM=
bezeichnet die Klasse-6-Speicherseite(n), deren Zustand in Bezug auf Seitenwechsel, Zugiffsart oder speziellen Zugriffsschutz verändert werden soll. Zusätzlich zu PGNUM muss mindestens ein weiterer Operand angegeben werden. CSTAT-Aufruf nur mit PGNUM=.... ist sinnlos und führt zu der Anzeige (Returncode) X'0C'.
wert
(virtuelle) Seitennummer der Speicherseite, deren Zustand verändert werden soll
ALL
Der Zustand aller Speicherseiten des Klasse-6-Speichers soll geändert werden. Die Angabe PGNUM=ALL darf nur mit der Angabe PAGE=... kombiniert werden.
(r)
r = Register, das die Seitennummer (wert) oder die Angabe ALL (X'40C1D3D3') enthält; (2 <= r <= 12).
ACCESS=
beschreibt, ob auf die angegebene Speicherseite nur Lesezugriffe oder auch Schreibzugriffe erlaubt sind (Erlaubnis für Schreibzugriff impliziert auch Lesezugriff).
Hinweise
Die Angabe ACCESS=... darf nicht mit der Angabe PGNUM=ALL kombiniert werden.
Memory Pool: Mit CSTMP eingerichteter Schreibschutz kann nicht mit CSTAT aufgehoben werden.
READ
Es ist nur Lesezugriff erlaubt.WRITE
Schreibzugriff erlaubt.(r)
r = Register mit der Angabe, ob Schreibzugriff erlaubt ist oder nicht.
YES: Schreibzugriff erlaubt (X'40E8C5E2).
NO: nur Lesezugriff erlaubt (X'4040D5D6').
PAGE=
gibt an, ob die Speicherseite(n) seitenwechselbar (pageable) oder resident sein soll(en).
YES
Die Speicherseite(n) soll(en) seitenwechselbar sein.
Speicherseiten eines residenten Memory Pools bleiben unberücksichtigt.
NO
Die Speicherseite(n) soll(en) resident sein.
Es werden maximal nur so viele Seiten resident gemacht, wie mit dem Operanden RESIDENT-PAGES=PARAMETERS(MINIMUM=...) im Kommando START-PROGRAM oder LOAD-PROGRAM vereinbart wurden.
Hinweis
Bei Speichersättigung können folgende Maßnahmen wirksam werden:
Noch anstehende CSTAT-Anforderungen nach residenten Speicherseiten werden abgewiesen (es erfolgt trotzdem Returncode X'00').
Seiten, die mit CSTAT resident gemacht wurden, können durch das Betriebssystem seitenwechselbar gemacht werden (sie werden später nicht automatisch wieder resident gemacht).
(r)
r = Register mit der Angabe YES (X'40E8C5E2') oder NO (X'4040D5D6'); (2 <= r <= 12).
PROTECT=
vereinbart einen besonderen Zugriffsschutz für die Speicherseite.
Hinweis
Die Angabe PROTECT=YES kann nicht mit der Angabe PGNUM=ALL oder AC-CESS=.... kombiniert werden.
Der mit PROTECT vereinbarte Zugriffsschutz kann nur durch Freigabe der Speicherseite (RELM) rückgängig gemacht werden. Der Inhalt der Seite wird dabei gelöscht!
YES
Zugriffe auf die Speicherseite über die Testhilfe AID sind nur mit besonderer Privilegierung möglich. Dasselbe gilt für einen Speicherabzug (Dump).
MF=
Zur allgemeinen Beschreibung des Operanden MF, der dazugehörenden Operandenwerte und der evtl. nachfolgenden Operanden (z.B. für einen Präfix) siehe Abschnitt „S-Typ-Makroaufrufe“. Die gültigen MF-Werte sind zu Beginn der Makrobeschreibung bei „Makrotyp“ angegeben und aus dem Aufrufformat ersichtlich.
Rückinformation und Fehleranzeigen
Nach der Makroausführung enthält Register R1 die Adresse der Operandenliste.
R15:
+---------------+ | | | | | | | | | | | |a|a| +---------------+
Über die Ausführung des Makros CSTAT wird im rechtsbündigen Byte des Registers R15 ein Returncode übergeben.
X'aa' | Erläuterung |
X'00' | Funktion ausgeführt. |
X'04' | Die angegebene Seite ist nicht allokiert. |
X'0C' | Operandenfehler |
X'10' | Das Programm hat versucht, insgesamt mehr Seiten resident zu machen, als im Kommando |