logo

Was ist RPC im Betriebssystem?

Remote Procedure Call oder RPC ist eine leistungsstarke Technik zum Erstellen verteilter, Client-Server-basierter Anwendungen. Es wird auch als Funktionsaufruf oder Unterprogrammaufruf bezeichnet. Ein Remote-Prozeduraufruf liegt vor, wenn ein Computerprogramm die Ausführung einer Prozedur in einem anderen Adressraum veranlasst, der als lokaler Prozeduraufruf codiert ist, ohne dass der Programmierer die Details für die Remote-Interaktion explizit angibt. Der Programmierer schreibt im Wesentlichen den gleichen Code, unabhängig davon, ob die Unterroutine lokal für das ausführende Programm oder remote ist. Dabei handelt es sich um eine Form der Client-Server-Interaktion, die über ein Request-Response-Message-Passing-System implementiert wird.

Was ist RPC im Betriebssystem?

Das RPC-Modell impliziert Standorttransparenz dass die Aufrufprozeduren weitgehend gleich sind, egal ob lokal oder remote. In der Regel sind sie nicht identisch, so dass Ortsgespräche von Ferngesprächen unterschieden werden können. Ferngespräche sind in der Regel um Größenordnungen langsamer und weniger zuverlässig als Ortsgespräche, daher ist es wichtig, sie zu unterscheiden.

RPCs sind eine Form der Interprozesskommunikation (IPC), bei der verschiedene Prozesse unterschiedliche Adressräume haben. Sie verfügen über unterschiedliche virtuelle Adressräume auf demselben Hostcomputer, obwohl der physische Adressraum derselbe ist. Wenn sie sich hingegen auf unterschiedlichen Hosts befinden, ist der physische Adressraum unterschiedlich.

So tätigen Sie einen Remoteprozeduraufruf

Die aufrufende Umgebung wird angehalten, die Prozedurparameter werden über das Netzwerk an die Umgebung übertragen, in der die Prozedur ausgeführt werden soll, und die Prozedur wird dort ausgeführt.

Was ist RPC im Betriebssystem?

Wenn die Prozedur beendet ist und ihre Ergebnisse liefert, wird sie zurück in die aufrufende Umgebung übertragen, wo die Ausführung wie bei der Rückkehr von einem regulären Prozeduraufruf fortgesetzt wird.

HINWEIS: RPC eignet sich besonders gut für die Client-Server-Interaktion (z. B. Abfrage-Antwort), bei der der Kontrollfluss zwischen dem Anrufer und dem Angerufenen wechselt. Konzeptionell werden Client und Server nicht gleichzeitig ausgeführt. Stattdessen springt der Ausführungsthread vom Aufrufer zum Angerufenen und dann wieder zurück.

Arten von RPC

Es gibt drei Arten von Remoteprozeduraufrufen (RPC) in einem Betriebssystem, wie zum Beispiel:

Was ist RPC im Betriebssystem?

1. Rückruf-RPC

Diese Art von RPC ermöglicht ein P2P-Paradigma zwischen beteiligten Prozessen. Es hilft einem Prozess, sowohl Client- als auch Serverdienste zu sein. Callback RPC hat die folgenden Funktionen, wie zum Beispiel:

Datenbankdesign in DBMS
  • Probleme mit interaktiven Anwendungen aus der Ferne verarbeitet.
  • Bietet Server mit Client-Handle.
  • Rückruf lässt den Clientprozess warten.
  • Verwalten Sie Callback-Deadlocks.
  • Es erleichtert ein Peer-to-Peer-Paradigma zwischen teilnehmenden Prozessen.

2. Broadcast-RPC

Bei Broadcast RPC handelt es sich um eine im Netzwerk gesendete Anfrage eines Clients, die von allen Servern mit der Methode zur Verarbeitung dieser Anfrage verarbeitet wird. Broadcast RPC hat die folgenden Funktionen, wie zum Beispiel:

  • Hier können Sie angeben, dass die Anforderungsnachricht des Clients gesendet werden muss.
  • Sie können Broadcast-Ports deklarieren.
  • Es trägt dazu bei, die Belastung des physischen Netzwerks zu reduzieren.

3. RPC im Batch-Modus

RPC im Batch-Modus hilft dabei, RPC-Anfragen in einem Übertragungspuffer auf der Clientseite in eine Warteschlange zu stellen, sie zu trennen und sie dann in einem Stapel über ein Netzwerk an den Server zu senden. RPC im Batch-Modus verfügt über die folgenden Funktionen, wie zum Beispiel:

  • Der mit dem Senden einer Anfrage verbundene Aufwand wird minimiert, indem die Anfrage in einem Stapel über das Netzwerk an den Server gesendet wird.
  • Diese Art von RPC-Protokoll ist nur für eine Anwendung effizient, die niedrigere Anrufraten benötigt.
  • Es braucht ein zuverlässiges Übertragungsprotokoll.

Was macht RPC?

Wenn Programmanweisungen, die das RPC-Framework verwenden, in ein ausführbares Programm kompiliert werden, ist im kompilierten Code ein Stub enthalten, der den Remoteprozedurcode darstellt.

Wenn das Programm ausgeführt und der Prozeduraufruf ausgegeben wird, empfängt der Stub die Anforderung und leitet sie an ein Client-Laufzeitprogramm auf dem lokalen Computer weiter. Wenn der Client-Stub zum ersten Mal aufgerufen wird, kontaktiert er einen Nameserver, um die Transportadresse zu ermitteln, an der sich der Server befindet.

Das Client-Laufzeitprogramm weiß, wie es den Remote-Computer und die Serveranwendung anspricht, und sendet die Nachricht über das Netzwerk, die die Remote-Prozedur anfordert. Ebenso enthält der Server ein Laufzeitprogramm und einen Stub, die mit der Remoteprozedur selbst kommunizieren, und Antwortanforderungsprotokolle werden auf die gleiche Weise zurückgegeben.

JFX-Java-Tutorial

Funktionen von RPC

In einem Betriebssystem verfügt der Remoteprozeduraufruf (RPC) über die folgenden Funktionen, wie zum Beispiel:

  • RPC verbirgt die Komplexität des Nachrichtenübermittlungsprozesses vor dem Benutzer.
  • RPC verwendet nur bestimmte Schichten des OSI-Modells wie die Transportschicht.
  • Clients können über höhere Sprachen mit dem Server kommunizieren.
  • RPC funktioniert sowohl mit lokalen als auch mit Remote-Umgebungen gut.
  • Das Programm von RPC ist in einfachem Code geschrieben und für den Programmierer leicht verständlich.
  • Das Betriebssystem kann Prozesse und Threads, die an RPC beteiligt sind, problemlos verarbeiten.
  • Das Betriebssystem verbirgt die Abstraktionen von RPC vor dem Benutzer.

Wie funktioniert RPC?

Wenn ein Remote-Prozeduraufruf aufgerufen wird, wird die aufrufende Umgebung angehalten, die Prozedurparameter werden über das Netzwerk an die Umgebung übertragen, in der die Prozedur ausgeführt werden soll, und die Prozedur wird dann in dieser Umgebung ausgeführt.

Wenn die Prozedur abgeschlossen ist, werden die Ergebnisse zurück an die aufrufende Umgebung übertragen, wo die Ausführung wie bei der Rückkehr von einem regulären Prozeduraufruf fortgesetzt wird.

Was ist RPC im Betriebssystem?

Ein Remoteprozeduraufruf (RPC) funktioniert in einem Betriebssystem in den folgenden Schritten:

Schritt 1: Der Client, der Client-Stub und die RPC-Laufzeit werden auf dem Client-Computer ausgeführt.

Schritt 2: Ein Client startet einen Client-Stub-Prozess, indem er auf übliche Weise Parameter übergibt. Das Packen der Prozedurparameter wird aufgerufen Rangieren . Der Client-Stub speichert im eigenen Adressraum des Clients und fordert außerdem die lokale RPC-Laufzeit auf, an den Server-Stub zurückzusenden.

Schritt 3: In dieser Phase kann der Benutzer auf RPC zugreifen, indem er einen regulären lokalen prozeduralen Aufruf durchführt. RPC Runtime verwaltet die Übertragung von Nachrichten zwischen dem Netzwerk über Client und Server und übernimmt außerdem die Aufgabe der erneuten Übertragung, Bestätigung, Weiterleitung und Verschlüsselung.

Schritt 4: Nach Abschluss des Servervorgangs kehrt es zum Server-Stub zurück, der die Rückgabewerte in eine Nachricht packt (marshallt). Der Server-Stub sendet dann eine Nachricht zurück an die Transportschicht.

Schritt 5: In diesem Schritt sendet die Transportschicht die Ergebnisnachricht an die Client-Transportschicht zurück, die eine Nachricht an den Client-Stub zurücksendet.

Java-Stringlänge

Schritt 6: In dieser Phase demarshallt (entpackt) der Client-Stub die Rückgabeparameter im resultierenden Paket und der Ausführungsprozess kehrt zum Aufrufer zurück.

Probleme mit Remote Procedure Call (RPC)

In einem Betriebssystem traten bei Remote-Prozeduraufrufen oder RPC einige Probleme auf, die behoben werden mussten, wie zum Beispiel:

Was ist RPC im Betriebssystem?

1. RPC-Laufzeit

Das RPC-Laufzeitsystem ist eine Bibliothek von Routinen und Diensten, die die Netzwerkkommunikation verarbeiten, die dem RPC-Mechanismus zugrunde liegt. Im Verlauf eines RPC-Aufrufs verarbeiten clientseitige und serverseitige Laufzeitsysteme Codebindungen, stellen Kommunikationen über ein geeignetes Protokoll her, leiten Anrufdaten zwischen Client und Server weiter und behandeln Kommunikationsfehler.

2. Stub

Die Funktion des Stubs besteht darin, den vom Programmierer geschriebenen Anwendungscode transparent zu machen.

    Auf der Clientseite:Der Stub verwaltet die Schnittstelle zwischen dem lokalen Prozeduraufruf des Clients und dem Laufzeitsystem, indem er Daten marshallt und unmarshallt, das RPC-Laufzeitprotokoll aufruft und bei Bedarf einige der Bindungsschritte ausführt.Auf der Serverseite:Der Stub stellt eine ähnliche Schnittstelle zwischen dem Laufzeitsystem und den vom Server ausgeführten lokalen Managerprozeduren bereit.

3. Bindung

Woher weiß der Kunde, wen er anrufen muss und wo sich der Dienst befindet?

Die flexibelste Lösung besteht darin, eine dynamische Bindung zu verwenden und den Server zur Laufzeit zu finden, wenn der RPC zum ersten Mal erstellt wird. Wenn der Client-Stub zum ersten Mal aufgerufen wird, kontaktiert er einen Nameserver, um die Transportadresse zu ermitteln, an der sich der Server befindet. Die Bindung besteht aus zwei Teilen:

    Wir:Ein Server, der einen Dienst anbietet, exportiert eine Schnittstelle dafür. Beim Exportieren einer Schnittstelle wird diese beim System registriert, sodass Clients sie verwenden können.Standort:Ein Client muss eine (exportierte) Schnittstelle importieren, bevor die Kommunikation beginnen kann.

4. Die mit RPC verbundene Aufrufsemantik

Medienübertragung

Es wird hauptsächlich in die folgenden Optionen eingeteilt:

    Nachricht zur Wiederholungsanforderung:Gibt an, ob das Senden einer Anforderungsnachricht erneut versucht werden soll, wenn ein Server ausgefallen ist oder der Empfänger die Nachricht nicht erhalten hat.Doppelte Filterung:Entfernen Sie die doppelten Serveranforderungen.Weiterleitung der Ergebnisse:Um verlorene Nachrichten erneut zu senden, ohne die Vorgänge auf der Serverseite erneut auszuführen.

Eigenschaften von RPC

Hier sind die wesentlichen Merkmale des Remoteprozeduraufrufs:

  • Die aufgerufene Prozedur befindet sich in einem anderen Prozess, der sich wahrscheinlich auf einem anderen Computer befindet.
  • Die Prozesse teilen sich keinen Adressraum.
  • Parameter werden nur von Werten übergeben.
  • RPC wird in der Umgebung des Serverprozesses ausgeführt.
  • Es bietet keinen Zugriff auf die Umgebung der aufrufenden Prozedur.

Vorteile von RPC

Hier sind einige Vorteile oder Nutzen von RPC, wie zum Beispiel:

  • Die RPC-Methode hilft Clients bei der Kommunikation mit Servern durch die herkömmliche Verwendung von Prozeduraufrufen in Hochsprachen.
  • Die RPC-Methode ist dem lokalen Prozeduraufruf nachempfunden, die Prozedur wird jedoch höchstwahrscheinlich in einem anderen Prozess und normalerweise auf einem anderen Computer ausgeführt.
  • RPC unterstützt prozess- und threadorientierte Modelle.
  • RPC macht den internen Nachrichtenübermittlungsmechanismus für den Benutzer verborgen.
  • Der Aufwand zum Neuschreiben und Neuentwickeln des Codes ist minimal.
  • Remote-Prozeduraufrufe können für die Verteilung und die lokale Umgebung verwendet werden.
  • Es verpflichtet viele der Protokollschichten, um die Leistung zu verbessern.
  • RPC bietet Abstraktion. Beispielsweise bleibt der Nachrichtenübermittlungscharakter der Netzwerkkommunikation dem Benutzer verborgen.
  • RPC ermöglicht die Nutzung der Anwendungen in einer verteilten Umgebung, die sich nicht nur in der lokalen Umgebung befindet.
  • Mit RPC-Code wird der Aufwand für das Neuschreiben und Neuentwickeln minimiert.
  • Von RPC unterstützte prozessorientierte und threadorientierte Modelle.

Nachteile von RPC

Hier sind einige Vor- und Nachteile der Verwendung von RPC, wie zum Beispiel:

  • Der Remoteprozeduraufruf übergibt Parameter nur anhand von Werten und Zeigerwerten, was nicht zulässig ist.
  • Die Aufruf- (und Rückgabe-)Zeit (d. h. der Overhead) einer Remote-Prozedur kann erheblich geringer sein als bei einer lokalen Prozedur.
  • Dieser Mechanismus ist sehr anfällig für Fehler, da er ein Kommunikationssystem, eine andere Maschine und einen anderen Prozess umfasst.
  • Das RPC-Konzept kann auf unterschiedliche Weise implementiert werden, was nicht standardmäßig möglich ist.
  • RPC bietet keine Flexibilität für die Hardwarearchitektur, da es größtenteils interaktionsbasiert ist.
  • Durch einen Remote-Prozeduraufruf werden die Kosten des Prozesses erhöht.