Heim > häufiges Problem > Welche Methoden der prozessübergreifenden Kommunikation gibt es?

Welche Methoden der prozessübergreifenden Kommunikation gibt es?

coldplay.xixi
Freigeben: 2023-01-13 00:31:52
Original
77740 Leute haben es durchsucht

Zu den Methoden der Interprozesskommunikation gehören: 1. Pipes beziehen sich normalerweise auf unbenannte Pipes, die die älteste Form von IPC in UNIX-Systemen sind; 2. FIFO, ein Dateityp; 3. Nachrichtenwarteschlange, die verknüpft ist Liste der Nachrichten und wird im Kernel gespeichert. 4. Semaphor, ein Zähler. 5. Gemeinsamer Speicher.

Welche Methoden der prozessübergreifenden Kommunikation gibt es?

Die Betriebsumgebung dieses Artikels: Windows 7-System, Dell G3-Computer.

Die Methoden der Interprozesskommunikation sind:

1. Pipes

Pipes, üblicherweise als unbenannte Pipes bezeichnet, sind die älteste Form von IPC in UNIX-Systemen.

Eigenschaften:

  • Es ist Halbduplex (d. h. Daten können nur in eine Richtung fließen) mit festen Lese- und Schreibenden.

  • Es kann nur für die Kommunikation zwischen Prozessen verwendet werden, die eine Beziehung haben (auch zwischen Eltern-Kind-Prozessen oder Geschwisterprozessen).

  • Es kann als spezielle Datei betrachtet werden, und zum Lesen und Schreiben können auch normale Lese-, Schreib- und andere Funktionen verwendet werden. Es handelt sich jedoch nicht um eine gewöhnliche Datei, sie gehört zu keinem anderen Dateisystem und existiert nur im Speicher.

2. FIFO

FIFO, auch Named Pipe genannt, ist ein Dateityp.

1. Funktionen

  • FIFO kann im Gegensatz zu namenlosen Pipes Daten zwischen unabhängigen Prozessen austauschen.

  • FIFO ist mit einem Pfadnamen verknüpft und liegt im Dateisystem als spezielle Gerätedatei vor.

3. Nachrichtenwarteschlange

Die Nachrichtenwarteschlange ist eine verknüpfte Liste von Nachrichten, die im Kernel gespeichert sind. Eine Nachrichtenwarteschlange wird durch eine Kennung (Warteschlangen-ID) identifiziert.

Funktionen

  • Die Nachrichtenwarteschlange ist datensatzorientiert und die darin enthaltenen Nachrichten haben ein bestimmtes Format und eine bestimmte Priorität.

  • Die Nachrichtenwarteschlange ist unabhängig von den Sende- und Empfangsvorgängen. Wenn der Prozess beendet wird, werden die Nachrichtenwarteschlange und ihr Inhalt nicht gelöscht.

  • Die Nachrichtenwarteschlange kann eine zufällige Abfrage von Nachrichten realisieren. Die Nachrichten müssen nicht in der Reihenfolge „First In, First Out“ gelesen werden, sondern können auch entsprechend der Art der Nachricht gelesen werden.

4. Semaphor

Der Semaphor unterscheidet sich von der bereits vorgestellten IPC-Struktur. Es handelt sich um einen Zähler. Semaphoren werden verwendet, um gegenseitigen Ausschluss und Synchronisierung zwischen Prozessen zu implementieren, anstatt Kommunikationsdaten zwischen Prozessen zu speichern.

Funktionen

  • Semaphor wird für die prozessübergreifende Synchronisierung verwendet und muss mit einem gemeinsamen Speicher kombiniert werden.

  • Das Semaphor basiert auf der PV-Operation des Betriebssystems, und die Operationen des Programms am Semaphor sind alle atomare Operationen.

  • Jede PV-Operation an einem Semaphor ist nicht auf das Addieren von 1 oder das Subtrahieren von 1 zum Semaphorwert beschränkt, sondern kann auch jede positive ganze Zahl addieren oder subtrahieren.

  • Unterstützen Sie Semaphorgruppen.

5. Shared Memory

Shared Memory (gemeinsam genutzter Speicher) bezieht sich auf zwei oder mehr Prozesse, die sich einen bestimmten Speicherbereich teilen.

Funktionen

  • Shared Memory ist der schnellste IPC-Typ, da der Prozess direkt auf den Speicher zugreift.

  • Da mehrere Prozesse gleichzeitig ablaufen können, ist eine Synchronisierung erforderlich.

  • Semaphore + gemeinsam genutzter Speicher werden normalerweise zusammen verwendet, und Semaphore werden verwendet, um den Zugriff auf den gemeinsam genutzten Speicher zu synchronisieren.

Wenn Sie mehr über das Programmieren erfahren möchten, achten Sie bitte auf die Rubrik php-Schulung!

Das obige ist der detaillierte Inhalt vonWelche Methoden der prozessübergreifenden Kommunikation gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage