Interprozesskommunikation

A Raster Computing System, das viele PCs über das Internet über das Internet über die Kommunikation mit Inter-Process-Netzwerk verbindet

Im Informatik, Interprozesskommunikation oder Interprozesskommunikation (IPC) bezieht sich speziell auf die Mechanismen und Betriebssystem sorgt dafür Prozesse Um gemeinsame Daten zu verwalten. In der Regel können Anwendungen IPC verwenden, die als kategorisiert werden Clients und Server, wo der Client Daten anfordert und der Server auf Clientanfragen reagiert.[1] Viele Anwendungen sind sowohl Clients als auch Server, wie allgemein in gesehen wird verteiltes Computer.

IPC ist sehr wichtig für den Entwurfsprozess für Mikrokernel und Nanokernel, die die Anzahl der vom Kernel bereitgestellten Funktionen verringern. Diese Funktionen werden dann durch Kommunikation mit Servern über IPC erhalten, was zu einem großen Anstieg der Kommunikation im Vergleich zu einem regulären monolithischen Kernel führt. IPC -Schnittstellen umfassen im Allgemeinen variable analytische Frameworkstrukturen. Diese Prozesse gewährleisten die Kompatibilität zwischen den Multi-Vektor-Protokollen, auf die sich IPC-Modelle verlassen.[2]

Ein IPC -Mechanismus ist entweder synchron oder asynchron. Synchronisation Primitive kann verwendet werden, um ein synchrones Verhalten mit einem asynchronen IPC -Mechanismus zu haben.

Ansätze

Unterschiedliche Ansätze für IPC wurden auf verschiedene zugeschnitten Software Anforderungen, wie zum Beispiel Leistung, Modularitätund Systemumstände wie z. Netzwerk Bandbreite und Latenz.[1]

Methode kurze Beschreibung Zur Verfügung gestellt von (Betriebssysteme oder andere Umgebungen)
Datei Ein auf der Festplatte gespeicherter Datensatz oder auf einen von einem Dateiserver synthetisierten Datensatz, auf den mehrere Prozesse zugegriffen werden können. Die meisten Betriebssysteme
Kommunikationsdatei Eine einzigartige Form von IPC in den späten 1960er Jahren, die am ähnlichsten ähnelt Plan 9's 9p -Protokoll Dartmouth Time-Sharing-System
Signal; Auch Asynchrone Systemfalle Eine Systemnachricht, die von einem Prozess an einen anderen gesendet wird und normalerweise nicht zum Übertragen von Daten verwendet, sondern verwendet, um den Partnerprozess aus der Ferne zu befehlen. Die meisten Betriebssysteme
Steckdose Daten über eine Netzwerkschnittstelle gesendet, entweder an einen anderen Prozess auf demselben Computer oder an einen anderen Computer im Netzwerk. Streamorientiert (TCP; Daten, die über einen Socket geschrieben wurdenUDP, SCTP). Die meisten Betriebssysteme
UNIX Domain Socket Ähnlich wie eine Internet -Sockel, aber alle Kommunikation tritt innerhalb des Kernels auf. Domänenhöhlen verwenden das Dateisystem als Adressraum. Prozesse verweisen auf eine Domänenbuchse als eine Inodeund mehrere Prozesse können mit einer Steckdose kommunizieren Alle POSIX -Betriebssysteme und Windows 10[3]
Meldungswarteschlange Ein Datenstrom ähnlich einem Socket, der jedoch normalerweise Nachrichtengrenzen bewahrt. In der Regel vom Betriebssystem implementiert, ermöglichen sie mehrere Prozesse zum Lesen und Schreiben in die Meldungswarteschlange ohne direkt miteinander verbunden zu sein. Die meisten Betriebssysteme
Anonyme Pfeife Ein unidirektionaler Datenkanal mit verwendet Standardeingang und Ausgabe. Daten, die in das Schreibende des Rohrs geschrieben wurden, werden vom Betriebssystem gepuffert, bis es aus dem Read-Ende des Rohrs gelesen wird. Die Zwei-Wege-Kommunikation zwischen Prozessen kann erreicht werden, indem zwei Rohre in entgegengesetzte "Richtungen" verwendet werden. Alle Posix Systeme, Fenster
Benannte Pfeife Ein Pfeif, das wie eine Datei behandelt wird. Anstatt die Standardeingabe und -ausgabe zu verwenden, wie bei einer anonymen Pipe, schreiben und lesen Sie in ein benanntes Rohr, als ob es sich um eine reguläre Datei handelt. Alle POSIX -Systeme, Windows, Amigaos 2.0+
Geteilte Erinnerung Mehrere Prozesse erhalten Zugriff auf denselben Block von Erinnerung, was einen gemeinsamen Puffer für die Prozesse erzeugt, um miteinander zu kommunizieren. Alle Possix -Systeme, Windows
Nachrichtenübergang Ermöglicht mehrere Programme mithilfe von Nachrichtenwarteschlangen und/oder nicht-OS-verwalteten Kanälen. Häufig in Parallelitätsmodellen verwendet. Benutzt in LPC, RPC, RMI, und MPI Paradigmen, Java RMI, Corba, Com, Dds, MSMQ, Mailsllots, Qnx, Andere
Speicher-abgebildete Datei Eine Datei zugeordnet auf RAM und kann durch direktes Ändern von Speicheradressen direkt geändert werden, anstatt an einen Stream auszugeben. Dies hat die gleichen Vorteile wie ein Standard Datei. Alle Possix -Systeme, Windows

Anwendungen

Remote -Verfahrensanrufschnittstellen

Plattform -Kommunikationsstapel

Im Folgenden sind Messaging und Informationssysteme, die IPC -Mechanismen verwenden, aber nicht selbst IPC implementieren:

Betriebssystemkommunikationsstapel

Im Folgenden finden Sie Plattform- oder Programmiersprach-spezifische APIs:

Verteilte Objektmodelle

Im Folgenden finden Sie Plattform- oder Programmiersprachenspezifische APIs, die IPC verwenden, sie jedoch nicht selbst implementieren:

Siehe auch

Verweise

  1. ^ a b "Interprocess Communications". Microsoft.
  2. ^ Camurati, P (1993). "Inter-Process-Kommunikation für Systemebene auf Systemebene". Internationaler Workshop über Hardware-/Software -Codessign.
  3. ^ "Windows/WSL Interop mit AF_unix". Microsoft. 7. Februar 2018. Abgerufen 25. Mai 2018.
  4. ^ "Gleichzeitige Programmierung - Kommunikation zwischen Prozessen"
  5. ^ "Ipcmain | Elektron".

Externe Links