Zum Inhalt springen

Interprozesskommunikation

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. Januar 2005 um 18:19 Uhr durch Duesentrieb (Diskussion | Beiträge) (Neuanfang, in Arbeit). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Unter Interprozesskommunikation (englisch inter-process communication, IPC) versteht man Methoden zum Informationsaustausch von Nebenläufigen Prozessen oder Threads. Im engeren Sinne versteht man unter IPC die Kommunikation zwischen Prozessen auf dem selben Computer, deren Speicherbereiche aber strikt voneinander getrennt sind (Speicherschutz). Im weiteren Sinne bezeichnet IPC aber jeden Datenaustausch in Verteilten Systemen, von Threads die sich ein Laufzeitsystem teilen bis hin zu Programmen die auf unterschiedlichen Rechnern laufen und über ein Netzwerk kommunizieren.

Für die Kommunikation ist dabei eine geeignete Prozesssynchronisation notwendig, insebesondere wenn verschiedene Prozesse potentiell gleichzeitig auf die selben Ressourcen zugreifen Können. Dabei sind neben Dateien, Preipherigeräten, etc auch andere Prozesse, mit denen kommuniziert werden soll, als Ressourcen zu verstehen. Dies wird je nach Betriebssystem bzw. Laufzeitumgebung und Art der Ressource durch Locks, Semaphore, Monitore oder ähnliches realisiert.

Für die Interprozesskommunikation stehen je nach Betriebssystem bzw. Laufzeitumgebung verschiedene Methoden zur Verfügung:


Die Interprozesskommunikation lässt sich je nach ausprägung in verscheidene Kategorien unterteilen:

  • snychron oder asynchron
  • Zuverlässig oder unzuverlässig
  • Funktions- oder Nachrichtencharakter
  • Daten- oder ereignisorientiert



In modernen Betriebssystemen ist der Arbeitsspeicher der Programme strikt voneinander getrennt (Speicherschutz). Um Programmen dennoch zu erlauben, miteinander zu kommunizieren, gibt es das Konzept der Interprozesskommunikation (engl. IPC).

Interprozesskommunikation findet für den Benutzer oft unsichtbar statt, z.B. wenn er das Clipboard seines Betriebssystems benutzt.

Technisch kann das Problem auf verschiedenste Arten gelöst werden, auch lassen sich Vorrichtungen des Betriebssystems zur Vernetzung zu diesem Zweck gebrauchen. Beispiele für technische Vorrichtungen sind u.a.:

Um den gleichzeitigen Zugriff mehrerer Prozesse auf dieselbe Ressource zu regeln, bieten viele Betriebssysteme Semaphoren an.

Klassische Probleme der Interprozesskommunikation sind die speisenden Philosophen oder das Producer/Consumer Problem.