Home

Interprozesskommunikation

Interprozesskommunikation (IPC) bezeichnet die Koordination und den Datenaustausch zwischen mehreren Prozessen in einem Betriebssystem oder über Netzwerke hinweg. Sie dient der Synchronisation von Zugriffen auf gemeinsam genutzte Ressourcen, dem Austausch von Nachrichten und dem Aufbau modularer, verteilter Systeme.

IPC lässt sich grob in zwei Kategorien einteilen: gemeinsamer Speicher und nachrichtenbasierte Mechanismen. Gemeinsamer Speicher ermöglicht

Wichtige Eigenschaften von IPC betreffen Synchronisation und Übertragungskonzept: Manche Kommunikationsformen sind blocking oder non-blocking, synchron oder

Anwendungsbereiche umfassen Client-Server-Architekturen, Producer-Consumer-Szenarien, modulare Softwarestrukturen und verteilte Systeme. Betriebssysteme unterstützen IPC mit unterschiedlichen Implementierungen;

Prozessen,
auf
denselben
Speicherbereich
zuzugreifen,
was
hohe
Geschwindigkeit
bietet,
erfordert
jedoch
Synchronisation
durch
Semaphoren
oder
Mutexes.
Nachrichtenbasierte
IPC
überträgt
Daten
durch
Nachrichtenpakete
oder
Signale,
ohne
dass
direkter
Speicherzugriff
nötig
ist.
Typische
Mechanismen
sind
Pipes
und
Named
Pipes
(FIFO),
Message
Queues,
Shared
Memory,
Semaphoren,
Sockets
und
Signale.
asynchron.
Pipes
etwa
sind
oft
unidirektional
und
eignen
sich
für
einfache
Flusssteuerung,
während
Sockets
bidirektionale
Kommunikation
über
lokale
oder
entfernte
Systeme
ermöglichen.
Für
verteilte
Systeme
kommt
RPC
oder
ähnliche
Prozeduraufrufparadigmen
hinzu,
die
entfernte
Funktionen
wie
lokale
bereitstellen.
Unix/Linux
nutzen
POSIX
IPC
(Shared
Memory,
Message
Queues,
Semaphores)
und
Sockets,
während
Windows
ähnliche
Mechanismen
über
Handles,
Named
Pipes
und
Sockets
bereitstellt.
Wichtige
Aspekte
sind
Sicherheit,
Fehlerbehandlung,
Datenserialisierung
und
Kompatibilität
von
Absender-
und
Empfängerseiten
(z.
B.
Endianess,
Encoding).