Shared Memory
Die schnellste Form der Kommunikation zwischen Prozessen: Zwei Prozesse blenden dieselben physischen Speicherseiten ein und lesen sich gegenseitig ohne jede Kopie.
Die Alternativen — Pipes, Sockets, Message Queues — laufen über den Kernel und kopieren mindestens einmal. Shared Memory kostet nur das Einblenden, danach ist der Zugriff so schnell wie bei gewöhnlichen Variablen. Der Preis: Man muss selbst synchronisieren, kein Systemaufruf schützt einen dabei, also braucht es Mutexe oder Semaphoren direkt im gemeinsamen Bereich, und Race Conditions werden zum eigenen Problem. Unter POSIX nutzt man shm_open gefolgt von mmap, unter Linux zusätzlich /dev/shm wie gewöhnliche Dateien. Eingesetzt wird es von Datenbanken (PostgreSQL hält seinen kompletten Buffer-Pool hier), Grafik-Stacks und gemeinsam genutzten Caches. Die ältere System-V-Variante mit shmget existiert weiter, hat aber eine unhandlichere Lebenszyklusverwaltung.