logo

Co je RPC v operačním systému?

Vzdálené volání procedur neboli RPC je výkonná technika pro vytváření distribuovaných aplikací založených na klient-server. Je také známý jako volání funkce nebo volání podprogramu. Vzdálené volání procedury je, když počítačový program způsobí provedení procedury v jiném adresním prostoru, kódovaném jako místní volání procedury, aniž by programátor výslovně uvedl podrobnosti pro vzdálenou interakci. Programátor zapisuje v podstatě stejný kód, ať už je podprogram lokální pro spouštěný program nebo vzdálený. Toto je forma interakce klient-server implementovaná prostřednictvím systému předávání zpráv žádost-odpověď.

Co je RPC v operačním systému

RPC model předpokládá průhlednost umístění že procedury volání jsou do značné míry stejné, ať už místní nebo vzdálené. Obvykle nejsou totožné, takže místní hovory lze odlišit od vzdálených hovorů. Vzdálená volání jsou obvykle řádově pomalejší a méně spolehlivá než místní volání, proto je důležité je rozlišovat.

RPC jsou formou meziprocesové komunikace (IPC), protože různé procesy mají různé adresní prostory. Mají odlišné virtuální adresní prostory na stejném hostitelském počítači, i když fyzický adresní prostor je stejný. Zatímco pokud jsou na různých hostitelích, fyzický adresní prostor je jiný.

Jak provést vzdálené volání procedury

Volající prostředí je pozastaveno, parametry procedury jsou přeneseny přes síť do prostředí, kde se má procedura provést, a tam je procedura vykonána.

Co je RPC v operačním systému

Když procedura skončí a vytvoří své výsledky, je přenesena zpět do volajícího prostředí, kde se její provádění obnoví, jako by se vracelo z běžného volání procedury.

POZNÁMKA: RPC je zvláště vhodné pro interakci klient-server (např. dotaz-odpověď), ve které se tok řízení střídá mezi volajícím a volaným. Koncepčně se klient a server nespouštějí současně; místo toho vlákno provádění přeskakuje od volajícího k volanému a pak zase zpět.

Typy RPC

V operačním systému existují tři typy vzdáleného volání procedur (RPC), například:

Co je RPC v operačním systému

1. Zpětné volání RPC

Tento typ RPC umožňuje P2P paradigma mezi zúčastněnými procesy. Pomáhá procesu být jak klientskými, tak serverovými službami. Callback RPC má následující funkce, jako například:

mravenec vs maven
  • Vzdáleně zpracované problémy s interaktivními aplikacemi.
  • Nabízí server s klientskou rukojetí.
  • Zpětné volání způsobí, že klientský proces čeká.
  • Správa uváznutí zpětného volání.
  • Usnadňuje paradigma peer-to-peer mezi zúčastněnými procesy.

2. Vysílání RPC

Broadcast RPC je požadavek klienta vysílaný v síti, zpracovaný všemi servery metodou pro zpracování tohoto požadavku. Broadcast RPC má následující funkce, jako například:

  • Umožňuje určit, že zpráva požadavku klienta musí být vysílána.
  • Můžete deklarovat vysílací porty.
  • Pomáhá snižovat zatížení fyzické sítě.

3. Dávkový režim RPC

RPC v dávkovém režimu pomáhá řadit do fronty, oddělovat požadavky RPC ve vyrovnávací paměti přenosu na straně klienta a poté je odesílat v síti v jedné dávce na server. RPC v dávkovém režimu má následující funkce, jako například:

  • Minimalizuje režii spojenou s odesíláním požadavku tím, že je odesílá přes síť v jedné dávce na server.
  • Tento typ protokolu RPC je účinný pouze pro aplikace, které potřebují nižší sazby za hovory.
  • Vyžaduje spolehlivý přenosový protokol.

Co dělá RPC?

Když jsou programové příkazy používající rámec RPC zkompilovány do spustitelného programu, je do zkompilovaného kódu zahrnut útržek představující kód vzdálené procedury.

testování a typy testování

Když je program spuštěn a je zadáno volání procedury, se zakázaným inzerováním přijme požadavek a předá jej klientskému runtime programu v místním počítači. Při prvním vyvolání se zakázaným inzerováním klienta kontaktuje jmenný server, aby určil transportní adresu, kde se server nachází.

Klientský runtime program ví, jak oslovit vzdálený počítač a serverovou aplikaci, a přes síť odešle zprávu, která požaduje vzdálenou proceduru. Podobně server obsahuje runtime program a stub, který je rozhraním se samotnou vzdálenou procedurou, a stejným způsobem se vracejí protokoly Response-request.

Vlastnosti RPC

V operačním systému má vzdálené volání procedur (RPC) následující funkce, jako například:

  • RPC skrývá před uživatelem složitost procesu předávání zpráv.
  • RPC používá pouze specifické vrstvy modelu OSI, jako je transportní vrstva.
  • Klienti mohou komunikovat se serverem pomocí jazyků vyšší úrovně.
  • RPC funguje dobře jak s místními, tak vzdálenými prostředími.
  • Program RPC je napsán v jednoduchém kódu a programátor jej snadno pochopí.
  • Operační systém si snadno poradí s procesy a vlákny zapojenými do RPC.
  • Operační systém skrývá abstrakce RPC před uživatelem.

Jak RPC funguje?

Při vyvolání vzdáleného volání procedury je volající prostředí pozastaveno, parametry procedury jsou přeneseny přes síť do prostředí, kde se má procedura provést, a procedura je pak v tomto prostředí provedena.

Po dokončení procedury jsou výsledky přeneseny zpět do volajícího prostředí, kde se provádění obnoví, jako by se vracelo z běžného volání procedury.

Co je RPC v operačním systému

Vzdálené volání procedury (RPC) funguje v operačním systému v následujících krocích:

Krok 1: Klient, klient se zakázaným inzerováním a běhový čas RPC se spustí na klientském počítači.

Krok 2: Klient spustí proces se zakázaným inzerováním předáním parametrů obvyklým způsobem. Zavolá se sbalení parametrů procedury seřazování . Se zakázaným inzerováním klienta se ukládá v rámci vlastního adresního prostoru klienta a také požádá místní běhové prostředí RPC, aby je odeslalo zpět na server.

Krok 3: V této fázi může uživatel přistupovat k RPC prostřednictvím pravidelného místního procedurálního volání. RPC Runtime spravuje přenos zpráv mezi sítí mezi klientem a serverem a také provádí úlohu opětovného přenosu, potvrzování, směrování a šifrování.

logika prvního řádu

Krok 4: Po dokončení procedury serveru se vrátí do stub serveru, který zabalí (zařadí) vrácené hodnoty do zprávy. Stub serveru poté odešle zprávu zpět transportní vrstvě.

Krok 5: V tomto kroku transportní vrstva odešle zprávu o výsledku zpět transportní vrstvě klienta, která vrátí zprávu zpět klientovi se zakázaným inzerováním.

Krok 6: V této fázi klient stub demarshalls (rozbalí) návratové parametry ve výsledném paketu a proces provádění se vrátí k volajícímu.

Problémy vzdáleného volání procedur (RPC)

V operačním systému se vzdálené volání procedur nebo RPC potýkalo s některými problémy, které je třeba řešit, jako například:

Co je RPC v operačním systému

1. RPC Runtime

Runtime systém RPC je knihovna rutin a služeb, které zpracovávají síťovou komunikaci, která je základem mechanismu RPC. V průběhu volání RPC zpracovává kód runtime systému na straně klienta a na straně serveru vazbu, navazuje komunikaci přes vhodný protokol, předává data volání mezi klientem a serverem a zpracovává chyby komunikace.

2. Pahýl

Funkcí útržku je poskytnout transparentnost kódu aplikace napsanému programátorem.

    Na straně klienta:Se zakázaným inzerováním se stará o rozhraní mezi voláním lokální procedury klienta a runtime systémem, zařazuje a uvolňuje data, vyvolává běhový protokol RPC a na požádání provádí některé kroky vazby.Na straně serveru:Stub poskytuje podobné rozhraní mezi runtime systémem a procedurami místního správce prováděnými serverem.

3. Vazba

vyměnit vše

Jak klient ví, komu má zavolat a kde se služba nachází?

Nejflexibilnějším řešením je použití dynamické vazby a nalezení serveru za běhu při prvním vytvoření RPC. Při prvním vyvolání se zakázaným inzerováním klienta kontaktuje jmenný server, aby určil transportní adresu, na které se server nachází. Vazba se skládá ze dvou částí:

    My:Server, který nabízí službu, exportuje rozhraní. Export rozhraní jej zaregistruje v systému, aby jej klienti mohli používat.lokalizace:Klient musí před zahájením komunikace importovat (exportované) rozhraní.

4. Sémantika volání spojená s RPC

Je klasifikován především do následujících možností,

    Znovu zkusit zprávu s požadavkem:Zda se má opakovat odeslání zprávy s požadavkem, když server selže nebo příjemce zprávu neobdržel.Duplicitní filtrování:Odstraňte duplicitní požadavky serveru.Opakovaný přenos výsledků:Chcete-li znovu odeslat ztracené zprávy bez opětovného provádění operací na straně serveru.

Charakteristika RPC

Zde jsou základní charakteristiky vzdáleného volání procedur:

  • Volaná procedura je v jiném procesu, který je pravděpodobně umístěn v jiném počítači.
  • Procesy nesdílejí adresní prostor.
  • Parametry jsou předávány pouze hodnotami.
  • RPC se spouští v prostředí procesu serveru.
  • Nenabízí přístup do prostředí volající procedury.

Výhody RPC

Zde jsou některé výhody nebo výhody RPC, jako například:

  • Metoda RPC pomáhá klientům komunikovat se servery konvenčním použitím volání procedur ve vyšších jazycích.
  • Metoda RPC je modelována na místním volání procedury, ale procedura bude s největší pravděpodobností provedena v jiném procesu a obvykle na jiném počítači.
  • RPC podporuje procesně a vláknově orientované modely.
  • RPC skryje vnitřní mechanismus předávání zpráv před uživatelem.
  • Snaha přepsat a znovu vyvinout kód je minimální.
  • Vzdálená volání procedur lze použít pro distribuci a místní prostředí.
  • Zavazuje mnoho vrstev protokolu ke zlepšení výkonu.
  • RPC poskytuje abstrakci. Například povaha síťové komunikace předávání zpráv zůstává uživateli skryta.
  • RPC umožňuje použití aplikací v distribuovaném prostředí, které není pouze v lokálním prostředí.
  • S kódem RPC je minimalizováno úsilí o přepisování a opětovném vývoji.
  • Procesně orientované a vláknově orientované modely podporované RPC.

Nevýhody RPC

Zde jsou některé nevýhody nebo nevýhody používání RPC, jako například:

  • Vzdálené volání procedury předává parametry pouze hodnotami a hodnotami ukazatele, což není povoleno.
  • Doba volání (a návratu) vzdálené procedury (tj. režie) může být výrazně kratší než u místní procedury.
  • Tento mechanismus je vysoce zranitelný vůči selhání, protože zahrnuje komunikační systém, další stroj a další proces.
  • Koncept RPC lze implementovat různými způsoby, což není standardní.
  • Nenabízí žádnou flexibilitu v RPC pro hardwarovou architekturu, protože je většinou založen na interakci.
  • Náklady na proces se zvyšují kvůli vzdálenému volání procedury.