logo

Co to jest RPC w systemie operacyjnym?

Zdalne wywołanie procedury, w skrócie RPC, to potężna technika tworzenia rozproszonych aplikacji opartych na kliencie-serwerze. Nazywa się to również wywołaniem funkcji lub wywołaniem podprogramu. Zdalne wywołanie procedury ma miejsce wtedy, gdy program komputerowy powoduje wykonanie procedury w innej przestrzeni adresowej, zakodowanej jako lokalne wywołanie procedury, bez wyraźnego podania przez programistę szczegółów zdalnej interakcji. Programista zapisuje zasadniczo ten sam kod, niezależnie od tego, czy podprogram jest lokalny w wykonywanym programie, czy zdalny. Jest to forma interakcji klient-serwer realizowana poprzez system przekazywania komunikatów żądanie-odpowiedź.

Co to jest RPC w systemie operacyjnym

Model RPC implikuje przejrzystość lokalizacji że procedury wywoływania są w dużej mierze takie same, niezależnie od tego, czy są to połączenia lokalne, czy zdalne. Zwykle nie są one identyczne, co pozwala odróżnić połączenia lokalne od połączeń zdalnych. Połączenia zdalne są zwykle o rząd wielkości wolniejsze i mniej niezawodne niż połączenia lokalne, dlatego ważne jest ich rozróżnienie.

RPC są formą komunikacji między procesami (IPC), w której różne procesy mają różne przestrzenie adresowe. Mają różne wirtualne przestrzenie adresowe na tym samym komputerze hosta, mimo że fizyczna przestrzeń adresowa jest taka sama. Jeśli znajdują się na różnych hostach, fizyczna przestrzeń adresowa jest inna.

Jak wykonać zdalne wywołanie procedury

Środowisko wywołujące zostaje zawieszone, parametry procedury przesyłane są siecią do środowiska, w którym procedura ma zostać wykonana, i tam procedura jest wykonywana.

Co to jest RPC w systemie operacyjnym

Gdy procedura zakończy się i wygeneruje wyniki, jest ona przekazywana z powrotem do środowiska wywołującego, gdzie wykonywanie jest wznawiane tak, jak w przypadku powrotu ze zwykłego wywołania procedury.

UWAGA: RPC szczególnie dobrze nadaje się do interakcji klient-serwer (np. zapytanie-odpowiedź), w której przepływ kontroli jest naprzemienny pomiędzy osobą wywołującą i odbieraną. Koncepcyjnie klient i serwer nie działają jednocześnie; zamiast tego wątek wykonania przeskakuje od wywołującego do wywoływanego, a następnie z powrotem.

Rodzaje RPC

W systemie operacyjnym istnieją trzy typy zdalnego wywoływania procedur (RPC), takie jak:

Co to jest RPC w systemie operacyjnym

1. Wywołanie zwrotne RPC

Ten typ RPC umożliwia paradygmat P2P pomiędzy uczestniczącymi procesami. Pomaga procesowi być zarówno usługą klienta, jak i serwera. Callback RPC ma następujące funkcje, takie jak:

samouczek selenu Java
  • Zdalnie przetwarzane problemy z aplikacjami interaktywnymi.
  • Oferuje serwer z obsługą klienta.
  • Wywołanie zwrotne powoduje, że proces klienta czeka.
  • Zarządzaj zakleszczeniami wywołań zwrotnych.
  • Ułatwia paradygmat peer-to-peer pomiędzy uczestniczącymi procesami.

2. Rozgłaszanie RPC

Broadcast RPC to żądanie klienta rozgłaszane w sieci, przetwarzane przez wszystkie serwery przy użyciu metody przetwarzania tego żądania. Broadcast RPC ma następujące funkcje, takie jak:

  • Umożliwia określenie, czy komunikat żądania klienta ma być rozgłaszany.
  • Możesz zadeklarować porty rozgłoszeniowe.
  • Pomaga zmniejszyć obciążenie sieci fizycznej.

3. RPC w trybie wsadowym

Tryb wsadowy RPC pomaga kolejkować, oddzielać żądania RPC w buforze transmisji po stronie klienta, a następnie wysyłać je w sieci w jednej partii na serwer. Tryb wsadowy RPC ma następujące funkcje, takie jak:

  • Minimalizuje obciążenie związane z wysyłaniem żądań, wysyłając je przez sieć w jednej partii do serwera.
  • Ten typ protokołu RPC jest skuteczny tylko w przypadku aplikacji wymagających niższych stawek za połączenia.
  • Potrzebuje niezawodnego protokołu transmisji.

Co robi RPC?

Kiedy instrukcje programu korzystające ze struktury RPC są kompilowane do programu wykonywalnego, do skompilowanego kodu dołączany jest kod pośredni reprezentujący kod procedury zdalnej.

Po uruchomieniu programu i wywołaniu procedury kod pośredniczy odbiera żądanie i przekazuje je do klienckiego programu wykonawczego na komputerze lokalnym. Przy pierwszym wywołaniu kodu pośredniczącego klienta kontaktuje się on z serwerem nazw w celu ustalenia adresu transportowego, pod którym znajduje się serwer.

Program wykonawczy klienta wie, jak adresować zdalny komputer i aplikację serwera, i wysyła przez sieć komunikat żądający zdalnej procedury. Podobnie serwer zawiera program wykonawczy i kod pośredniczący, który łączy się z samą zdalną procedurą, a protokoły żądań odpowiedzi są zwracane w ten sam sposób.

Funkcje RPC

W systemie operacyjnym zdalne wywoływanie procedur (RPC) ma następujące funkcje, takie jak:

  • RPC ukrywa przed użytkownikiem złożoność procesu przekazywania wiadomości.
  • RPC używa tylko określonych warstw modelu OSI, takich jak warstwa transportowa.
  • Klienci mogą komunikować się z serwerem za pomocą języków wyższego poziomu.
  • RPC działa dobrze zarówno w środowiskach lokalnych, jak i zdalnych.
  • Program RPC jest napisany prostym kodem i jest łatwo zrozumiały dla programisty.
  • System operacyjny z łatwością radzi sobie z procesami i wątkami zaangażowanymi w RPC.
  • System operacyjny ukrywa przed użytkownikiem abstrakcje RPC.

Jak działa RPC?

Po wywołaniu zdalnego wywołania procedury środowisko wywołujące zostaje zawieszone, parametry procedury są przesyłane przez sieć do środowiska, w którym procedura ma zostać wykonana, a następnie procedura jest wykonywana w tym środowisku.

konwencja nazewnictwa Java

Po zakończeniu procedury wyniki są przesyłane z powrotem do środowiska wywołującego, gdzie wykonywanie jest wznawiane tak, jak w przypadku powrotu ze zwykłego wywołania procedury.

Co to jest RPC w systemie operacyjnym

Zdalne wywołanie procedury (RPC) działa w systemie operacyjnym w następujących krokach:

Krok 1: Klient, kod pośredniczący klienta i środowisko wykonawcze RPC są wykonywane na komputerze klienckim.

Krok 2: Klient rozpoczyna proces pośredniczący klienta, przekazując parametry w zwykły sposób. Nazywa się pakowanie parametrów procedury przetaczanie . Odcinek klienta przechowuje dane we własnej przestrzeni adresowej klienta, a także prosi lokalne środowisko wykonawcze RPC o odesłanie z powrotem do odcinka serwera.

Krok 3: Na tym etapie użytkownik może uzyskać dostęp do RPC poprzez regularne lokalne wywołanie proceduralne. RPC Runtime zarządza transmisją komunikatów między siecią pomiędzy klientem a serwerem, a także wykonuje zadania retransmisji, potwierdzania, routingu i szyfrowania.

Krok 4: Po zakończeniu procedury serwera wraca do kodu pośredniczącego serwera, który pakuje (zestawia) zwracane wartości w wiadomości. Następnie odcinek serwera wysyła wiadomość z powrotem do warstwy transportowej.

Krok 5: Na tym etapie warstwa transportowa odsyła komunikat wynikowy do warstwy transportowej klienta, która zwraca komunikat do odcinka pośredniczącego klienta.

Krok 6: Na tym etapie klient pośredniczy (rozpakowuje) zwracane parametry w pakiecie wynikowym, a proces wykonawczy wraca do osoby wywołującej.

Problemy ze zdalnym wywoływaniem procedur (RPC)

W systemie operacyjnym zdalne wywoływanie procedur lub RPC napotykało pewne problemy, które należy rozwiązać, takie jak:

np.histogram
Co to jest RPC w systemie operacyjnym

1. Środowisko wykonawcze RPC

System wykonawczy RPC to biblioteka procedur i usług obsługujących komunikację sieciową leżącą u podstaw mechanizmu RPC. W trakcie wywołania RPC kod systemów wykonawczych po stronie klienta i serwera obsługuje wiązanie, ustanawia komunikację za pośrednictwem odpowiedniego protokołu, przekazuje dane połączenia między klientem a serwerem oraz obsługuje błędy komunikacji.

ciąg znaków w C++

2. Odgałęzienie

Funkcją kodu pośredniczącego jest zapewnienie przejrzystości kodu aplikacji napisanego przez programistę.

    Po stronie klienta:Odgałęzienie obsługuje interfejs między lokalnym wywołaniem procedury klienta a systemem wykonawczym, organizuje i unmarshalluje dane, wywołuje protokół wykonawczy RPC i, jeśli jest to wymagane, wykonuje niektóre z wiążących kroków.Po stronie serwera:Sekcja pośrednicząca zapewnia podobny interfejs pomiędzy systemem wykonawczym a procedurami lokalnego menedżera wykonywanymi przez serwer.

3. Wiązanie

Skąd klient wie, do kogo zadzwonić i gdzie znajduje się usługa?

Najbardziej elastycznym rozwiązaniem jest użycie wiązania dynamicznego i znalezienie serwera w czasie wykonywania, gdy po raz pierwszy wykonywane jest RPC. Przy pierwszym wywołaniu kodu pośredniczącego klienta kontaktuje się on z serwerem nazw w celu ustalenia adresu transportowego, pod którym znajduje się serwer. Wiązanie składa się z dwóch części:

    My:Serwer posiadający usługę do zaoferowania eksportuje dla niej interfejs. Eksport interfejsu powoduje jego zarejestrowanie w systemie, dzięki czemu klienci mogą z niego korzystać.Lokowanie:Klient musi zaimportować (wyeksportować) interfejs, zanim będzie mogła rozpocząć się komunikacja.

4. Semantyka wywoływania związana z RPC

Dzieli się go głównie na następujące opcje:

    Komunikat żądania ponownej próby:Określa, czy ponowić próbę wysłania komunikatu żądania, gdy serwer ulegnie awarii lub odbiorca nie odebrał komunikatu.Filtrowanie duplikatów:Usuń zduplikowane żądania serwera.Retransmisja wyników:Aby ponownie wysłać utracone wiadomości bez ponownego wykonywania operacji po stronie serwera.

Charakterystyka RPC

Oto podstawowe cechy zdalnego wywołania procedury:

  • Wywoływana procedura znajduje się w innym procesie, który prawdopodobnie znajduje się na innej maszynie.
  • Procesy nie współdzielą przestrzeni adresowej.
  • Parametry są przekazywane tylko przez wartości.
  • RPC jest wykonywane w środowisku procesu serwera.
  • Nie oferuje dostępu do środowiska procedury wywołującej.

Zalety RPC

Oto niektóre zalety lub zalety RPC, takie jak:

  • Metoda RPC pomaga klientom komunikować się z serwerami poprzez konwencjonalne wykorzystanie wywołań procedur w językach wysokiego poziomu.
  • Metoda RPC wzorowana jest na lokalnym wywołaniu procedury, jednak procedura najprawdopodobniej zostanie wykonana w innym procesie i zwykle na innym komputerze.
  • RPC obsługuje modele zorientowane na procesy i wątki.
  • RPC sprawia, że ​​wewnętrzny mechanizm przekazywania wiadomości jest ukryty przed użytkownikiem.
  • Nakład pracy związany z ponownym napisaniem i ponownym opracowaniem kodu jest minimalny.
  • Zdalne wywołania procedur można wykorzystać w dystrybucji i środowisku lokalnym.
  • Angażuje wiele warstw protokołu w celu poprawy wydajności.
  • RPC zapewnia abstrakcję. Na przykład charakter komunikacji sieciowej polegający na przekazywaniu komunikatów pozostaje ukryty przed użytkownikiem.
  • RPC umożliwia korzystanie z aplikacji w środowisku rozproszonym, czyli nie tylko lokalnym.
  • Dzięki kodowi RPC wysiłki związane z ponownym pisaniem i ponownym opracowywaniem są zminimalizowane.
  • Modele zorientowane na proces i wątki obsługiwane przez RPC.

Wady RPC

Oto kilka wad lub wad korzystania z protokołu RPC, takich jak:

  • Zdalne wywołanie procedury przekazuje parametry tylko według wartości i wartości wskaźników, co jest niedozwolone.
  • Czas zdalnego wywołania procedury (i powrotu) (tj. koszty ogólne) może być znacznie krótszy niż w przypadku procedury lokalnej.
  • Mechanizm ten jest bardzo podatny na awarie, ponieważ obejmuje system komunikacyjny, inną maszynę i inny proces.
  • Koncepcję RPC można wdrożyć na różne sposoby, co nie jest standardowe.
  • Nie oferują żadnej elastyczności w RPC dla architektury sprzętowej, ponieważ opiera się głównie na interakcji.
  • Koszt procesu zwiększa się ze względu na zdalne wywołanie procedury.