logo

Ce este RPC în sistemul de operare?

Remote Procedure Call sau RPC este o tehnică puternică pentru construirea de aplicații distribuite, bazate pe client-server. Este cunoscut și ca apel de funcție sau apel de subrutină. Un apel de procedură la distanță este atunci când un program de calculator determină executarea unei proceduri într-un spațiu de adrese diferit, codificat ca un apel de procedură locală, fără ca programatorul să precizeze în mod explicit detaliile pentru interacțiunea de la distanță. Programatorul scrie în esență același cod, indiferent dacă subrutina este locală pentru programul de execuție sau la distanță. Aceasta este o formă de interacțiune client-server implementată printr-un sistem de transmitere a mesajelor cerere-răspuns.

Ce este RPC în sistemul de operare

Modelul RPC presupune transparența locației că procedurile de apelare sunt în mare parte aceleași, fie că sunt locale sau la distanță. De obicei, acestea nu sunt identice, astfel încât apelurile locale pot fi diferențiate de apelurile de la distanță. Apelurile de la distanță sunt de obicei ordine de mărime mai lente și mai puțin fiabile decât apelurile locale, așa că este important să le distingem.

RPC-urile sunt o formă de comunicare între procese (IPC), prin aceea că diferite procese au spații de adrese diferite. Au spații de adrese virtuale distincte pe aceeași mașină gazdă, chiar dacă spațiul de adrese fizice este același. În timp ce, dacă sunt pe gazde diferite, spațiul de adrese fizice este diferit.

Cum să efectuați un apel de procedură de la distanță

Mediul de apelare este suspendat, parametrii procedurii sunt transferați prin rețea în mediul în care urmează să se execute procedura și procedura este executată acolo.

Ce este RPC în sistemul de operare

Când procedura se termină și își produce rezultatele, este transferată înapoi în mediul de apelare, unde execuția se reia ca și cum ar reveni dintr-un apel obișnuit de procedură.

NOTĂ: RPC este deosebit de potrivit pentru interacțiunea client-server (de exemplu, interogare-răspuns) în care fluxul de control alternează între apelant și apelat. Conceptual, clientul și serverul nu se execută simultan; în schimb, firul de execuție sare de la apelant la cel apelat și apoi înapoi.

Tipuri de RPC

Există trei tipuri de apeluri de procedură la distanță (RPC) într-un sistem de operare, cum ar fi:

Ce este RPC în sistemul de operare

1. RPC de apel invers

Acest tip de RPC permite o paradigmă P2P între procesele participante. Ajută un proces să fie atât servicii client, cât și servicii server. Callback RPC are următoarele funcții, cum ar fi:

derivate parțiale din latex
  • Probleme de aplicații interactive procesate de la distanță.
  • Oferă server cu mâner pentru clienți.
  • Callback face ca procesul clientului să aștepte.
  • Gestionați blocajele de apel invers.
  • Facilitează o paradigmă peer-to-Peer între procesele participante.

2. Difuzați RPC

Broadcast RPC este o cerere a unui client difuzată în rețea, procesată de toate serverele cu metoda de procesare a acelei cereri. Broadcast RPC are următoarele funcții, cum ar fi:

  • Vă permite să specificați că mesajul de solicitare al clientului trebuie difuzat.
  • Puteți declara porturi de difuzare.
  • Ajută la reducerea sarcinii rețelei fizice.

3. RPC în modul lot

RPC în modul lot ajută la coadă, cererile RPC separate, într-un buffer de transmisie, pe partea clientului, și apoi să le trimită într-o rețea într-un lot către server. RPC în modul lot are următoarele funcții, cum ar fi:

  • Minimizează suprasarcina implicată în trimiterea unei cereri prin trimiterea lor prin rețea într-un singur lot către server.
  • Acest tip de protocol RPC este eficient doar pentru o aplicație care necesită rate de apel mai mici.
  • Are nevoie de un protocol de transmisie fiabil.

Ce face RPC?

Când instrucțiunile de program care utilizează cadrul RPC sunt compilate într-un program executabil, în codul compilat este inclus un stub reprezentând codul procedurii de la distanță.

Când programul este rulat și apelul de procedură este emis, stub-ul primește cererea și o înaintează către un program de rulare client în computerul local. Prima dată când este invocat stub-ul clientului, acesta contactează un server de nume pentru a determina adresa de transport unde se află serverul.

Programul client runtime știe cum să se adreseze computerului la distanță și aplicației server și trimite mesajul prin rețea care solicită procedura de la distanță. În mod similar, serverul include un program de rulare și un stub care interfață cu procedura de la distanță în sine, iar protocoalele de cerere de răspuns sunt returnate în același mod.

cast sql

Caracteristicile RPC

Într-un sistem de operare, apelul de procedură la distanță (RPC) are următoarele caracteristici, cum ar fi:

  • RPC ascunde de utilizator complexitatea procesului de transmitere a mesajelor.
  • RPC folosește doar straturi specifice ale modelului OSI, cum ar fi stratul de transport.
  • Clienții pot comunica cu serverul utilizând limbaje de nivel superior.
  • RPC funcționează bine atât cu medii locale, cât și cu medii la distanță.
  • Programul RPC este scris într-un cod simplu și este ușor de înțeles de către programator.
  • Sistemul de operare poate gestiona cu ușurință procesele și firele implicate în RPC.
  • Sistemul de operare ascunde abstracțiile RPC de la utilizator.

Cum funcționează RPC?

Când este invocat un apel de procedură la distanță, mediul de apelare este suspendat, parametrii procedurii sunt transferați prin rețea în mediul în care urmează să se execute procedura, iar procedura este apoi executată în acel mediu.

Când procedura se termină, rezultatele sunt transferate înapoi în mediul de apelare, unde execuția se reia ca și cum ar reveni dintr-un apel obișnuit de procedură.

Ce este RPC în sistemul de operare

Un apel de procedură la distanță (RPC) funcționează în următorii pași într-un sistem de operare:

Pasul 1: Clientul, stub-ul clientului și timpul de execuție RPC se execută pe computerul client.

Pasul 2: Un client începe un proces stub de client prin transmiterea parametrilor în mod obișnuit. Se apelează împachetarea parametrilor procedurii triaj . Stub-ul clientului se stochează în spațiul de adresă propriu al clientului și, de asemenea, solicită RPC Runtime local să trimită înapoi la server stub.

Pasul 3: În această etapă, utilizatorul poate accesa RPC efectuând un apel procedural local obișnuit. RPC Runtime gestionează transmiterea mesajelor între rețea între client și server și, de asemenea, îndeplinește funcția de retransmitere, confirmare, rutare și criptare.

Pasul 4: După finalizarea procedurii de server, acesta revine la server stub, care împachetează (marshall) valorile returnate într-un mesaj. Stub-ul serverului trimite apoi un mesaj înapoi la stratul de transport.

Pasul 5: În acest pas, stratul de transport trimite înapoi mesajul rezultat către stratul de transport al clientului, care returnează un mesaj către stub-ul clientului.

lista de creare a java

Pasul 6: În această etapă, stub-ul clientului demarshall (despachetează) parametrii returnați din pachetul rezultat, iar procesul de execuție revine apelantului.

Probleme legate de apelul de procedură de la distanță (RPC)

Într-un sistem de operare, apelul de procedură la distanță sau RPC s-au confruntat cu unele probleme care trebuie rezolvate, cum ar fi:

Ce este RPC în sistemul de operare

1. RPC Runtime

Sistemul RPC runtime este o bibliotecă de rutine și servicii care gestionează comunicațiile de rețea care stau la baza mecanismului RPC. În cursul unui apel RPC, codul sistemelor de rulare pe partea client și pe partea serverului gestionează legarea, stabilește comunicații printr-un protocol adecvat, transmite date de apel între client și server și gestionează erorile de comunicație.

2. Stub

Funcția stub-ului este de a oferi transparență codului aplicației scris de programator.

    Pe partea clientului:Stub-ul se ocupă de interfața dintre apelul de procedură locală a clientului și sistemul de execuție, marshaling și unmarshaling datele, invocând protocolul RPC runtime și, dacă este solicitat, efectuând unii dintre pașii de legare.Pe partea de server:Stub-ul oferă o interfață similară între sistemul de rulare și procedurile managerului local executate de server.

3. Legare

Cum știe clientul pe cine să sune și unde se află serviciul?

Cea mai flexibilă soluție este să utilizați legarea dinamică și să găsiți serverul în timpul rulării când RPC-ul este creat pentru prima dată. Prima dată când este invocat stub-ul clientului, acesta contactează un server de nume pentru a determina adresa de transport la care se află serverul. Legatura constă din două părți:

    Noi:Un Server care are un serviciu de oferit exportă o interfață pentru acesta. Exportarea unei interfețe o înregistrează în sistem, astfel încât clienții să o poată utiliza.Localizare:Un Client trebuie să importe o interfață (exportată) înainte de a începe comunicarea.

4. Semantica de apelare asociată cu RPC

elementele de bază ale java

Este clasificat în principal în următoarele opțiuni,

    Reîncercați mesajul de solicitare:Dacă trebuie să reîncercați să trimiteți un mesaj de solicitare atunci când un server a eșuat sau destinatarul nu a primit mesajul.Dublare de filtrare:Eliminați solicitările serverului duplicat.Retransmiterea rezultatelor:Pentru a retrimite mesajele pierdute fără a reexecuta operațiunile de pe partea serverului.

Caracteristicile RPC

Iată caracteristicile esențiale ale apelului procedurii de la distanță:

  • Procedura apelată se află într-un alt proces, care este probabil să locuiască într-o altă mașină.
  • Procesele nu împart spațiul de adrese.
  • Parametrii sunt transmisi numai prin valori.
  • RPC se execută în mediul procesului serverului.
  • Nu oferă acces la mediul procedurii de apelare.

Avantajele RPC

Iată câteva avantaje sau beneficii ale RPC, cum ar fi:

  • Metoda RPC ajută clienții să comunice cu serverele prin utilizarea convențională a apelurilor de procedură în limbaje de nivel înalt.
  • Metoda RPC este modelată pe apelul procedurii locale, dar procedura este cel mai probabil să fie executată într-un proces diferit și, de obicei, pe un computer diferit.
  • RPC acceptă modele orientate pe proces și pe fire.
  • RPC face ca mecanismul intern de transmitere a mesajelor să fie ascuns utilizatorului.
  • Efortul necesar pentru a rescrie și re-dezvolta codul este minim.
  • Apelurile de procedură de la distanță pot fi utilizate pentru distribuție și mediul local.
  • Angajează multe dintre straturile de protocol pentru a îmbunătăți performanța.
  • RPC oferă abstractizare. De exemplu, natura de transmitere a mesajelor a comunicației în rețea rămâne ascunsă utilizatorului.
  • RPC permite utilizarea aplicațiilor într-un mediu distribuit care nu este doar în mediul local.
  • Cu codul RPC, eforturile de rescriere și re-dezvoltare sunt minime.
  • Modele orientate pe proces și orientate pe fire susținute de RPC.

Dezavantajele RPC

Iată câteva dezavantaje sau dezavantaje ale utilizării RPC, cum ar fi:

  • Apelul de procedură la distanță transmite parametrii numai după valori și valori de pointer, ceea ce nu este permis.
  • Timpul de apelare (și returnare) a procedurii de la distanță (adică, cheltuielile generale) poate fi semnificativ mai mic decât o procedură locală.
  • Acest mecanism este foarte vulnerabil la eșec, deoarece implică un sistem de comunicații, o altă mașină și un alt proces.
  • Conceptul RPC poate fi implementat în diferite moduri, ceea ce nu este standard.
  • Nu oferă nicio flexibilitate în RPC pentru arhitectura hardware, deoarece se bazează în mare parte pe interacțiune.
  • Costul procesului este crescut din cauza unui apel de procedură de la distanță.