WikiDer > Interprozesskommunikation

Interprocescommunicatie

Interprozesskommunikation (IPC) ist die gegenseitige Kommunikation zwischen Faden in einem oder mehreren Prozess(e) in einem Multitasking-Betriebssystem. Diese Kommunikation dient dazu, Daten zu übertragen oder den Zugriff auf gemeinsame Ressourcen zu synchronisieren.

Grob gesagt gibt es vier Kategorien der Interprozesskommunikation:

  • Nachricht übergeben - Nachrichten weiterleiten über Rohre, Briefkasten oder ähnliche Mechanismen
  • Synchronisation - ein Signalsystem (Semaphoren, Flaggen, Signale) die von Prozessen gesetzt und gelesen werden können
  • geteilte Erinnerung oder geteilte Erinnerung - ein Stück davon Arbeitsspeicher des Computers, auf den mehrere Prozesse zugreifen können
  • Remote-Prozeduraufrufe (RPC) - Aufruf Verfahren (Unterprogramme) mit Parametern, die Aktionen in einem anderen Prozess auslösen

Implementierungen

Es gibt viele verschiedene APIs, die verschiedene Optionen bieten. Die wichtigsten Cross-Plattform sind:

Mehrere plattformspezifische Implementierungen sind:

  • Apple Inc. - Apple-Events (früher bekannt als Interapplikationskommunikation, IAC)
  • Freedesktop.org - D-BUS
  • K THE - Desktop-Kommunikationsprotokoll (DCOP)
  • machkernel - Mach-Portso
  • Microsoft - ActiveX, Komponentenobjektmodell (KOM), Verteiltes Komponentenobjektmodell (DCOM), Dynamischer Datenaustausch (DDE) und Objektverknüpfung und Einbettung (OLE), anonyme Pfeife, benanntes Rohr
  • Novelle - SPX
  • POSIX - mmap, Nachrichtenwarteschlangen, Semaphoren und geteilte Erinnerung
  • RISC-Betriebssystem - Mitteilungen
  • Sonne Mikrosysteme - Remote-Prozeduraufruf (RPC)
  • System V - Nachrichtenwarteschlangen, Semaphoren und geteilte Erinnerung
  • XML - XML-RPC oder SEIFE
  • VMS - Briefkasten, Ereignisflaggen und Schlösser (Signale), geteilte Erinnerung

Methoden

MethodeUnterstützt durch (Betriebssystem oder Umgebung)
DateiAlle Betriebssysteme.
SignalDie meisten Betriebssysteme; einige, wie Windows, stellen nur bereit Signale in der C-Laufzeitbibliothek, unterstützen aber ansonsten IPC nicht.
SteckdoseDie meisten Betriebssysteme.
RohreAlle POSIXSysteme.
Named PipesAlle POSIXSysteme.
SemaphorenAlle POSIXSysteme.
geteilte ErinnerungAlle POSIXSysteme.
Nachricht übergeben
(nichts geteilt)
Wird unter anderem in der Schnittstelle zur Nachrichtenweitergabe- oder MPI-Paradigma, Java-RMI, CORBA.
Speicherordner (mmap)Alle POSIXSysteme; ein Rennbedingung kann auftreten, wenn eine temporäre Datei verwendet wird. Windows unterstützt diese Technik, aber die API ist plattformspezifisch.
NachrichtenwarteschlangeDie meisten Betriebssysteme.
BriefkastenEinige Betriebssysteme.