Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Gemeinsam nutzbarer Speicher

&pagelevel(5)&pagelevel

Für die C-Bibliotheksfunktionen wird gemeinsam nutzbarer Speicherbereich zur Verfügung gestellt (siehe Handbuch „Makroaufrufe an den Ablaufteil“ [10]).
Mit shmget() wird gemeinsam nutzbarer Speicherbereich angelegt, in Einheiten zu 1 Mbyte im oberen Adressraum auf 1 Mbyte-Grenze ausgerichtet. Das Argument size der Funktion shmget() wird entsprechend aufgerundet.

shmget() liefert eine Kennzahl für gemeinsam nutzbaren Speicherbereich zurück. shmat() legt den gemeinsam nutzbaren Speicherbereich an.

Die Verbindung zum gemeinsam nutzbaren Speicherbereich wird nach einem shmdt-Aufruf oder bei Programmende abgebrochen. Die zugehörige Kennzahl für den gemeinsam nutzbaren Speicherbereich wird freigegeben:

  • mit shmctl()

  • nachdem sich der letzte an diesem gemeinsam nutzbaren Speicher beteiligte Prozess mit shmdt() abgemeldet hat

  • bei Programmende

Erst danach kann dieselbe Kennzahl für gemeinsam nutzbaren Speicherbereich wieder verwendet werden.

Für den gemeinsam nutzbaren Speicher stehen maximal 150 Kennzahlen im BS2000 zur Verfügung. Pro Programm sind maximal 32 Aufrufe der Funktion shmat() möglich.

Um gemeinsam nutzbare Speicherbereiche mit der Steuerfunktion SHM_LOCK der Funktion shmctl() sperren zu können, muss bei /START-PROGRAM der Operand RESIDENT-PAGES angegeben werden.