WikiDer > Interprozesskommunikation
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:
- Common Object Request Broker-Architektur (CORBA)
- Verteilte Computerumgebung (DCE)
- Nachrichtenbus (MBUS)[1]
- Anonyme Pfeifen und Named Pipes
- Steckdosen
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
| Methode | Unterstützt durch (Betriebssystem oder Umgebung) |
|---|---|
| Datei | Alle Betriebssysteme. |
| Signal | Die meisten Betriebssysteme; einige, wie Windows, stellen nur bereit Signale in der C-Laufzeitbibliothek, unterstützen aber ansonsten IPC nicht. |
| Steckdose | Die meisten Betriebssysteme. |
| Rohre | Alle POSIXSysteme. |
| Named Pipes | Alle POSIXSysteme. |
| Semaphoren | Alle POSIXSysteme. |
| geteilte Erinnerung | Alle 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. |
| Nachrichtenwarteschlange | Die meisten Betriebssysteme. |
| Briefkasten | Einige Betriebssysteme. |
Quellen, Anmerkungen und/oder Verweise
|