Inter Process Communication (IPC) im Betriebssystem

Was ist Interprozesskommunikation?

Interprozesskommunikation (IPC) wird für den Datenaustausch zwischen mehreren Threads in einem oder mehreren Prozessen oder Programmen verwendet. Die Prozesse können auf einzelnen oder mehreren über ein Netzwerk verbundenen Computern ausgeführt werden. Die vollständige Form von IPC ist Interprozesskommunikation.

Es handelt sich um eine Reihe von Programmierschnittstellen, die es einem Programmierer ermöglichen, Aktivitäten zwischen verschiedenen Programmprozessen zu koordinieren, die in einem Betriebssystem gleichzeitig ausgeführt werden können. Dadurch kann ein bestimmtes Programm mehrere Benutzeranforderungen gleichzeitig verarbeiten.

Da jede einzelne Benutzeranforderung dazu führen kann, dass mehrere Prozesse im Betriebssystem ausgeführt werden, müssen die Prozesse möglicherweise miteinander kommunizieren. Jeder IPC-Protokollansatz hat seine eigenen Vorteile und Einschränkungen. Daher ist es nicht ungewöhnlich, dass ein einzelnes Programm alle IPC-Methoden verwendet.

Ansätze für die Kommunikation zwischen Prozessen

Hier sind einige wichtige Methoden für die Interprozesskommunikation:

Ansätze für die Kommunikation zwischen Prozessen
Ansätze zur prozessübergreifenden Kommunikation

Rohre

Pipes werden häufig für die Kommunikation zwischen zwei verwandten Prozessen verwendet. Dabei handelt es sich um eine Halbduplex-Methode, d. h. der erste Prozess kommuniziert mit dem zweiten Prozess. Um jedoch Vollduplex zu erreichen, ist eine weitere Pipe erforderlich.

Nachrichtenübermittlung

Es handelt sich um einen Mechanismus zur Kommunikation und Synchronisierung eines Prozesses. Mittels Nachrichtenübermittlung kommunizieren die Prozesse miteinander, ohne auf gemeinsame Variablen zurückgreifen zu müssen.

Der IPC-Mechanismus ermöglicht zwei Operationen:

  • Senden (Nachricht) – Nachrichtengröße fest oder variabel
  • Empfangen (Nachricht)

Nachrichtenwarteschlangen

Eine Nachrichtenwarteschlange ist eine verknüpfte Liste von Nachrichten, die in der Nachrichtenwarteschlange gespeichert sind Kern. Es wird durch eine Nachrichtenwarteschlangenkennung identifiziert. Diese Methode ermöglicht die Kommunikation zwischen einzelnen oder mehreren Prozessen mit Vollduplex-Kapazität.

Direkte Kommunikation

Bei dieser Art der Kommunikation zwischen Prozessen sollten sich gegenseitig explizite Namen nennen. Bei dieser Methode wird eine Verbindung zwischen einem Paar kommunizierender Prozesse hergestellt, und zwischen jedem Paar besteht nur eine Verbindung.

Indirekte Kommunikation

Indirekte Kommunikation wird nur dann hergestellt, wenn Prozesse ein gemeinsames Postfach teilen und jedes Prozesspaar mehrere Kommunikationsverbindungen nutzt. Eine Verbindung kann mit vielen Prozessen kommunizieren. Die Verbindung kann bidirektional oder unidirektional sein.

Geteilte Erinnerung

Gemeinsam genutzter Speicher ist ein Speicher, der von zwei oder mehr Prozessen gemeinsam genutzt wird und durch die Nutzung des gemeinsamen Speichers aller Prozesse erstellt wird. Dieser Speichertyp muss durch die Synchronisierung des Zugriffs aller Prozesse voreinander geschützt werden.

FIFO

Kommunikation zwischen zwei unabhängigen Prozessen. Es handelt sich um eine Vollduplex-Methode, was bedeutet, dass der erste Prozess mit dem zweiten Prozess kommunizieren kann und auch das Gegenteil möglich ist.

Warum IPC?

Hier sind die Gründe für die Verwendung des Interprozess-Kommunikationsprotokolls für den Informationsaustausch:

  • Es hilft, die Modularität zu beschleunigen
  • Computational
  • Privilegientrennung
  • Verbraucherfreundlichkeit
  • Hilft Betriebssystemen, miteinander zu kommunizieren und ihre Aktionen zu synchronisieren.

Im IPC verwendete Begriffe

Im Folgenden sind einige wichtige Begriffe aufgeführt, die im IPC verwendet werden:

Semaphores: Ein Semaphor ist eine Signalmechanismustechnik. Diese Betriebssystemmethode erlaubt oder verbietet den Zugriff auf die Ressource, je nachdem, wie sie eingerichtet ist.

Signals: Es handelt sich um eine Methode zur Kommunikation zwischen mehreren Prozessen durch Signalisierung. Der Quellprozess sendet ein Signal, das anhand der Nummer erkannt wird, und der Zielprozess verarbeitet es.

Lesevorschlag:- Was ist Semaphore? Binär, Zähltypen mit Beispiel

Was ist wie FIFOS und was ist anders als FIFOS?

Wie FIFOS Im Gegensatz zu FIFOS
Es folgt der FIFO-Methode Methode, um bestimmte dringende Nachrichten abzurufen, bevor sie an die Front gelangen
FIFO existiert unabhängig von Sende- und Empfangsprozessen. Immer einsatzbereit, kein Öffnen oder Schließen erforderlich.
Ermöglicht die Datenübertragung zwischen unabhängigen Prozessen. Keine Synchronisierungsprobleme zwischen Öffnen und Schließen.

Zusammenfassung

  • Definition: Die Interprozesskommunikation wird für den Datenaustausch zwischen mehreren Threads in einem oder mehreren Prozessen oder Programmen verwendet.
  • Pipe wird häufig für die Kommunikation zwischen zwei verwandten Prozessen verwendet.
  • Nachrichtenübermittlung ist ein Mechanismus zur Kommunikation und Synchronisierung eines Prozesses.
  • Eine Nachrichtenwarteschlange ist eine verknüpfte Liste von Nachrichten, die im Kernel gespeichert sind
  • Der direkte Prozess ist eine Art prozessübergreifender Kommunikationsprozess, der sich gegenseitig explizit benennen sollte.
  • Indirekte Kommunikation findet nur dann statt, wenn die Prozesse ein gemeinsames Postfach teilen und jedes Prozesspaar mehrere Kommunikationsverbindungen nutzt.
  • Shared Memory ist ein von zwei oder mehr Prozessen gemeinsam genutzter Speicher, der mithilfe des Shared Memory aller Prozesse eingerichtet wird.
  • Die Methode der Interprozesskommunikation hilft, die Modularität zu beschleunigen.
  • Ein Semaphor ist eine Signalmechanismustechnik.
  • Signaling ist eine Methode zur Kommunikation zwischen mehreren Prozessen mittels Signalisierung.
  • Wie FIFO folgt die FIFO-Methode, während im Gegensatz zu FIFO die Methode verwendet wird, um bestimmte dringende Nachrichten abzurufen, bevor sie an die Front gelangen.