logo

Čo je RPC v operačnom systéme?

Vzdialené volanie procedúr alebo RPC je výkonná technika na vytváranie distribuovaných aplikácií založených na klient-server. Je tiež známy ako volanie funkcie alebo volanie podprogramu. Vzdialené volanie procedúry je, keď počítačový program spôsobí spustenie procedúry v inom adresnom priestore, kódované ako lokálne volanie procedúry, bez toho, aby programátor explicitne uviedol podrobnosti o vzdialenej interakcii. Programátor zapíše v podstate rovnaký kód, či už je podprogram lokálny pre vykonávaný program alebo vzdialený. Toto je forma interakcie klient-server implementovaná prostredníctvom systému odosielania správ typu žiadosť-odpoveď.

Čo je RPC v operačnom systéme

RPC model naznačuje transparentnosť miesta že procedúry volania sú vo veľkej miere rovnaké, či už lokálne alebo vzdialené. Zvyčajne nie sú identické, takže miestne hovory sa dajú rozlíšiť od vzdialených hovorov. Vzdialené hovory sú zvyčajne rádovo pomalšie a menej spoľahlivé ako miestne hovory, preto je dôležité ich rozlišovať.

RPC sú formou medziprocesovej komunikácie (IPC), v ktorej rôzne procesy majú rôzne adresné priestory. Majú odlišné priestory virtuálnych adries na rovnakom hostiteľskom počítači, aj keď priestor fyzických adries je rovnaký. Ak sú na rôznych hostiteľoch, priestor fyzických adries je odlišný.

Ako uskutočniť diaľkové volanie procedúry

Prostredie volania je pozastavené, parametre procedúry sa prenesú cez sieť do prostredia, kde sa má procedúra vykonať, a tam sa procedúra vykoná.

Čo je RPC v operačnom systéme

Keď sa procedúra skončí a prinesie výsledky, prenesie sa späť do prostredia volania, kde sa jej vykonávanie obnoví, ako keby sa vracalo z bežného volania procedúry.

POZNÁMKA: RPC je obzvlášť vhodné pre interakciu klient-server (napr. dotaz-odpoveď), v ktorej sa tok riadenia strieda medzi volajúcim a volaným. Koncepčne sa klient a server nevykonávajú súčasne; namiesto toho vlákno vykonávania preskočí z volajúceho na volaného a potom späť.

Typy RPC

V operačnom systéme existujú tri typy vzdialeného volania procedúry (RPC), ako napríklad:

Čo je RPC v operačnom systéme

1. Spätné volanie RPC

Tento typ RPC umožňuje P2P paradigmu medzi zúčastnenými procesmi. Pomáha procesu byť klientskymi aj serverovými službami. Callback RPC má nasledujúce funkcie, ako napríklad:

java počítadlo
  • Diaľkovo spracovávané problémy s interaktívnymi aplikáciami.
  • Ponúka server s ovládaním klientov.
  • Spätné volanie prinúti proces klienta čakať.
  • Spravujte uviaznutia spätného volania.
  • Uľahčuje paradigmu peer-to-peer medzi zúčastnenými procesmi.

2. Vysielanie RPC

Broadcast RPC je požiadavka klienta vysielaná v sieti, spracovaná všetkými servermi spôsobom na spracovanie tejto požiadavky. Vysielanie RPC má nasledujúce funkcie, ako napríklad:

  • Umožňuje vám určiť, že žiadosť klienta sa musí vysielať.
  • Môžete deklarovať vysielacie porty.
  • Pomáha znižovať zaťaženie fyzickej siete.

3. Dávkový režim RPC

RPC v dávkovom režime pomáha zaraďovať do frontu, oddeľovať požiadavky RPC vo vyrovnávacej pamäti prenosu na strane klienta a potom ich odosielať v sieti v jednej dávke na server. RPC v dávkovom režime má nasledujúce funkcie, ako napríklad:

  • Minimalizuje réžiu spojenú s odoslaním požiadavky ich odoslaním cez sieť v jednej dávke na server.
  • Tento typ protokolu RPC je účinný len pre aplikáciu, ktorá potrebuje nižšie sadzby za hovory.
  • Vyžaduje spoľahlivý prenosový protokol.

Čo robí RPC?

Keď sa programové príkazy používajúce rámec RPC skompilujú do spustiteľného programu, v kompilovanom kóde je zahrnutý útržok predstavujúci kód vzdialenej procedúry.

Keď je program spustený a je zadané volanie procedúry, stub prijme požiadavku a prepošle ju klientskemu runtime programu v lokálnom počítači. Pri prvom vyvolaní klientskeho stub kontaktuje názvový server, aby určil transportnú adresu, kde sa server nachádza.

Klientsky runtime program vie, ako osloviť vzdialený počítač a serverovú aplikáciu, a cez sieť odošle správu, ktorá požaduje vzdialenú procedúru. Podobne server obsahuje runtime program a stub, ktorý je prepojený so samotnou vzdialenou procedúrou a protokoly Response-request sa vracajú rovnakým spôsobom.

Vlastnosti RPC

V operačnom systéme má vzdialené volanie procedúry (RPC) nasledujúce funkcie, ako napríklad:

  • RPC skrýva pred používateľom zložitosť procesu odovzdávania správ.
  • RPC používa iba špecifické vrstvy modelu OSI, ako je transportná vrstva.
  • Klienti môžu komunikovať so serverom pomocou jazykov vyššej úrovne.
  • RPC funguje dobre s lokálnymi aj vzdialenými prostrediami.
  • Program RPC je napísaný v jednoduchom kóde a programátor ho ľahko pochopí.
  • Operačný systém dokáže ľahko spracovať procesy a vlákna zahrnuté v RPC.
  • Operačný systém skryje abstrakcie RPC pred používateľom.

Ako funguje RPC?

Keď je vyvolané volanie vzdialenej procedúry, prostredie volania sa pozastaví, parametre procedúry sa prenesú cez sieť do prostredia, kde sa má procedúra vykonať, a procedúra sa potom vykoná v tomto prostredí.

Po dokončení procedúry sa výsledky prenesú späť do prostredia volania, kde sa vykonávanie obnoví, ako keby sa vracalo z bežného volania procedúry.

prepínacia metóda java
Čo je RPC v operačnom systéme

Vzdialené volanie procedúry (RPC) funguje v operačnom systéme v nasledujúcich krokoch:

Krok 1: Klient, stub klienta a čas spustenia RPC sa spustia na klientskom počítači.

Krok 2: Klient spustí proces stub klienta odovzdaním parametrov obvyklým spôsobom. Balenie parametrov procedúry sa nazýva zoraďovanie . Klientsky stub sa ukladá vo vlastnom adresnom priestore klienta a tiež požiada lokálny RPC Runtime o odoslanie späť na server stub.

Krok 3: V tejto fáze môže používateľ získať prístup k RPC prostredníctvom pravidelného miestneho procedurálneho volania. RPC Runtime riadi prenos správ medzi sieťou cez klienta a server a tiež vykonáva úlohu opätovného prenosu, potvrdenia, smerovania a šifrovania.

Krok 4: Po dokončení procedúry servera sa vráti na stub servera, ktorý zabalí (zaradí) návratové hodnoty do správy. Stub servera potom odošle správu späť transportnej vrstve.

Krok 5: V tomto kroku transportná vrstva odošle správu o výsledku do klientskej transportnej vrstvy, ktorá vráti správu späť do klientskeho stub.

Krok 6: V tejto fáze klient stub demarshalls (rozbalí) návratové parametre vo výslednom pakete a proces vykonávania sa vráti k volajúcemu.

Problémy vzdialeného volania procedúr (RPC)

V operačnom systéme čelilo vzdialené volanie procedúry alebo RPC niektorým problémom, ktoré je potrebné riešiť, ako napríklad:

Čo je RPC v operačnom systéme

1. RPC Runtime

čo je regex java

Runtime systém RPC je knižnica rutín a služieb, ktoré spracovávajú sieťovú komunikáciu, ktorá je základom mechanizmu RPC. V priebehu volania RPC spracováva kód runtime systému na strane klienta a na strane servera väzbu, nadväzuje komunikáciu cez vhodný protokol, odovzdáva údaje o hovore medzi klientom a serverom a spracováva chyby komunikácie.

2. Stub

Funkciou stub je poskytnúť transparentnosť kódu aplikácie napísaného programátorom.

    Na strane klienta:Stub spracováva rozhranie medzi volaním lokálnej procedúry klienta a runtime systémom, zaraďuje a rozraďuje údaje, vyvoláva runtime protokol RPC a na požiadanie vykonáva niektoré kroky viazania.Na strane servera:Stub poskytuje podobné rozhranie medzi runtime systémom a procedúrami lokálneho manažéra vykonávanými serverom.

3. Viazanie

Ako klient vie, komu má zavolať a kde sa služba nachádza?

Najflexibilnejším riešením je použiť dynamickú väzbu a nájsť server v čase spustenia pri prvom vytvorení RPC. Pri prvom vyvolaní klientskeho stub kontaktuje názvový server, aby určil transportnú adresu, na ktorej sa server nachádza. Väzba sa skladá z dvoch častí:

    my:Server, ktorý ponúka službu, exportuje rozhranie. Exportovanie rozhrania ho zaregistruje v systéme, aby ho klienti mohli používať.lokalizácia:Klient musí pred začatím komunikácie importovať (exportované) rozhranie.

4. Sémantika volania spojená s RPC

mapy java

Je klasifikovaný hlavne do nasledujúcich možností,

    Znova skúsiť správu so žiadosťou:Či sa má zopakovať odoslanie správy s požiadavkou, keď server zlyhá alebo ak príjemca správu neprijal.Duplicitné filtrovanie:Odstráňte duplicitné požiadavky servera.Opakovaný prenos výsledkov:Na opätovné odoslanie stratených správ bez opätovného vykonania operácií na strane servera.

Charakteristika RPC

Tu sú základné charakteristiky vzdialeného volania procedúr:

  • Volaná procedúra je v inom procese, ktorý sa pravdepodobne nachádza v inom počítači.
  • Procesy nezdieľajú adresný priestor.
  • Parametre sa odovzdávajú iba hodnotami.
  • RPC sa vykonáva v prostredí serverového procesu.
  • Neponúka prístup do prostredia volajúcej procedúry.

Výhody RPC

Tu sú niektoré výhody alebo výhody RPC, ako napríklad:

  • Metóda RPC pomáha klientom komunikovať so servermi konvenčným používaním volaní procedúr v jazykoch vysokej úrovne.
  • Metóda RPC je modelovaná na lokálnom volaní procedúry, ale postup sa s najväčšou pravdepodobnosťou vykoná v inom procese a zvyčajne na inom počítači.
  • RPC podporuje procesy a modely orientované na vlákna.
  • RPC skryje interný mechanizmus odovzdávania správ pred používateľom.
  • Úsilie potrebné na prepísanie a vývoj kódu je minimálne.
  • Vzdialené volania procedúr možno použiť na distribúciu a lokálne prostredie.
  • Zaväzuje mnohé vrstvy protokolu na zlepšenie výkonu.
  • RPC poskytuje abstrakciu. Napríklad, povaha sieťovej komunikácie na odovzdávanie správ zostáva pred používateľom skrytá.
  • RPC umožňuje použitie aplikácií v distribuovanom prostredí, ktoré nie je len v lokálnom prostredí.
  • S RPC kódom je úsilie o prepisovanie a opätovný vývoj minimalizované.
  • Procesne orientované a vláknovo orientované modely podporované RPC.

Nevýhody RPC

Tu sú niektoré nevýhody alebo nevýhody používania RPC, ako napríklad:

  • Vzdialené volanie procedúry odovzdáva parametre iba hodnotami a hodnotami ukazovateľa, čo nie je povolené.
  • Čas volania (a návratu) vzdialenej procedúry (t. j. režijné náklady) môže byť výrazne kratší ako pri lokálnej procedúre.
  • Tento mechanizmus je veľmi náchylný na zlyhanie, pretože zahŕňa komunikačný systém, ďalší stroj a ďalší proces.
  • Koncept RPC môže byť implementovaný rôznymi spôsobmi, čo nie je štandardné.
  • Neponúka žiadnu flexibilitu v RPC pre hardvérovú architektúru, pretože je väčšinou založená na interakcii.
  • Náklady na proces sa zvyšujú v dôsledku vzdialeného volania procedúry.