BESCHREIBUNG
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.
Versionen
Gemeinsamer Speicher gemäß POSIX wird seit Linux 2.4 und Glibc 2.2 unterstützt.Langlebigkeit (Persistenz)
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.Linken
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.Zugriff auf gemeinsame Speicherobjekte über das Dateisystem
Unter Linux werden gemeinsame Speicherobjekte in einem virtuellen Dateisystem (tmpfs) erzeugt, das üblicherweise unter /dev/shm eingehängt wird. Seit Kernel 2.6.19 unterstützt Linux die Verwendung von Zugriffs-Kontrolllisten (access control list, ACL) zur Rechtevergabe für die Objekte im virtuellen Dateisystem.ANMERKUNGEN
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.
KOLOPHON
Diese Seite ist Teil der Veröffentlichung 4.06 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
ÜBERSETZUNG
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 <[email protected]>.