shm_overview - Überblick über gemeinsame Speichernutzung
gemäß POSIX
Die POSIX-API für gemeinsame Speichernutzung ermöglicht Prozessen
den Austausch von Informationen in einem gemeinsamen Speicherbereich.
In der API werden die folgenden Schnittstellen genutzt:
-
shm_open(3)
- erstellt und öffnet ein neues Objekt oder
öffnet ein vorhandenes Objekt. Das ist analog zu open(2).
Der Aufruf gibt einen Dateideskriptor zurück, der für die
Nutzung durch die im Folgenden aufgelisteten Schnittstellen bestimmt
ist.
-
ftruncate(2)
- bestimmt die Größe des gemeinsamen
Speicherobjekts. (Ein neu erzeugtes gemeinsames Speicherobjekt hat eine
Ausdehnung von Null).
-
mmap(2)
- bildet das gemeinsame Speicherobjekt in den virtuellen
Adressraum des aufrufenden Prozesses ab.
-
munmap(2)
- löst das gemeinsame Speicherobjekt aus dem
virtuellen Adressraum des aufrufenden Prozesses heraus.
-
shm_unlink(3)
- entfernt den Namen eines gemeinsamen Speicherobjekts.
-
close(2)
- schließt den von shm_open(3) bereitgestellten
Dateideskriptor, wenn dieser nicht mehr benötigt wird.
-
fstat(2)
- beschafft eine stat-Struktur, die das gemeinsame
Speicherobjekt beschreibt. Zu den von diesem Aufruf zurückgegebenen
Informationen gehören die Größe des Objekts (
st_size), Rechte ( st_mode), Besitzer ( st_uid) und
Gruppe ( st_gid).
-
fchown(2)
- ändert den Besitzer eines gemeinsamen
Speicherobjekts.
-
fchmod(2)
- ändert die Rechte eines gemeinsamen
Speicherobjekts.
Gemeinsamer Speicher gemäß POSIX wird seit Linux 2.4 und Glibc 2.2
unterstützt.
Gemeinsame POSIX-Speicherobjekte sind im Kernel sehr langlebig: Ein gemeinsames
Speicherobjekt besteht fort, bis das System heruntergefahren wird oder bis
alle Prozesse das Objekt aus ihrem Adressraum entfernt haben und es mittels
shm_unlink(3) »zerstört« wurde.
Programme, die die POSIX-API für gemeinsame Speichernutzung verwenden,
müssen mit
cc -lrt übersetzt werden, damit sie gegen die
Echtzeit-Bibliothek
librt gelinkt werden.
Unter Linux werden gemeinsame Speicherobjekte in einem virtuellen Dateisystem (
tmpfs(5)) erzeugt, das üblicherweise unter
/dev/shm
eingehängt wird. Seit Linux 2.6.19 unterstützt Linux die
Verwendung von Zugriffssteuerlisten (access control list, ACL) zur
Rechtevergabe für die Objekte im virtuellen Dateisystem.
Normalerweise müssen Prozesse ihren Zugriff auf ein gemeinsames
Speicherobjekt synchronisieren, beispielsweise mit POSIX-Semaphoren.
Gemeinsam genutzter System-V-Speicher (
shmget(2),
shmop(2), etc.)
ist eine ältere API für gemeinsame Speichernutzung. Gemeinsamer
Speicher nach POSIX stellt eine einfachere und besser entworfene Schnittstelle
bereit. Auf der anderen Seite ist gemeinsamer Speicher nach POSIX nicht so
weit verbreitet (besonders auf älteren Systemen) als das
System-V-Verfahren.
fchmod(2),
fchown(2),
fstat(2),
ftruncate(2),
memfd_create(2),
mmap(2),
mprotect(2),
munmap(2),
shmget(2),
shmop(2),
shm_open(3),
shm_unlink(3),
sem_overview(7)
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Eberhard
Schauer <
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer