logo

Kas ir RPC operētājsistēmā?

Remote Procedure Call jeb RPC ir jaudīgs paņēmiens izplatītu, uz klienta serveri balstītu lietojumprogrammu izveidei. To sauc arī par funkciju izsaukumu vai apakšprogrammas izsaukumu. Attālās procedūras izsaukums ir tad, kad datorprogramma liek procedūrai izpildīt citā adrešu telpā, kas tiek kodēta kā vietējās procedūras izsaukums, programmētājam skaidri nenorādot attālās mijiedarbības detaļas. Programmētājs raksta būtībā vienu un to pašu kodu neatkarīgi no tā, vai apakšprogramma ir lokāla izpildprogrammai vai attālināta. Šis ir klienta un servera mijiedarbības veids, kas tiek īstenots, izmantojot pieprasījuma-atbildes ziņojumu nodošanas sistēmu.

Kas ir RPC operētājsistēmā

RPC modelis paredz atrašanās vietas caurspīdīgums ka zvanīšanas procedūras lielā mērā ir vienādas neatkarīgi no tā, vai tās ir lokālas vai attālinātas. Parasti tie nav identiski, lai vietējos zvanus varētu atšķirt no attāliem zvaniem. Attālinātie zvani parasti ir daudz lēnāki un mazāk uzticami nekā vietējie zvani, tāpēc ir svarīgi tos atšķirt.

RPC ir starpprocesu komunikācijas (IPC) veids, jo dažādiem procesiem ir dažādas adrešu telpas. Viņiem ir atšķirīgas virtuālās adrešu telpas vienā un tajā pašā resursdatorā, lai gan fiziskā adrešu telpa ir vienāda. Ja tie atrodas dažādos saimniekdatoros, fiziskā adrešu telpa ir atšķirīga.

Kā veikt attālās procedūras zvanu

Zvanīšanas vide tiek apturēta, procedūras parametri tiek pārsūtīti pa tīklu uz vidi, kurā procedūra ir jāizpilda, un procedūra tiek izpildīta tur.

Kas ir RPC operētājsistēmā

Kad procedūra ir pabeigta un rada rezultātus, tā tiek pārsūtīta atpakaļ uz izsaukšanas vidi, kur izpilde tiek atsākta, it kā atgriežoties no parastās procedūras izsaukuma.

PIEZĪME. RPC ir īpaši piemērots klienta-servera (piem., vaicājuma-atbildes) mijiedarbībai, kurā vadības plūsma mainās starp zvanītāju un izsaucamo. Konceptuāli klients un serveris neizpilda vienlaicīgi; tā vietā izpildes pavediens pāriet no zvanītāja uz izsaucamo un pēc tam atkal atpakaļ.

RPC veidi

Operētājsistēmā ir trīs veidu attālās procedūras izsaukumi (RPC), piemēram:

Kas ir RPC operētājsistēmā

1. Atzvanīšanas RPC

Šis RPC veids nodrošina P2P paradigmu starp iesaistītajiem procesiem. Tas palīdz procesam būt gan klienta, gan servera pakalpojumiem. Atzvanīšanas RPC ir šādas funkcijas, piemēram:

salas java
  • Attālināti apstrādātas interaktīvas lietojumprogrammas problēmas.
  • Piedāvā serveri ar klientu rokturi.
  • Atzvanīšana liek klienta procesam gaidīt.
  • Pārvaldiet atzvanīšanas strupceļus.
  • Tas veicina peer-to-peer paradigmu starp iesaistītajiem procesiem.

2. Apraides RPC

Broadcast RPC ir klienta pieprasījums, kas tiek pārraidīts tīklā, ko apstrādā visi serveri, izmantojot šī pieprasījuma apstrādes metodi. Apraides RPC ir šādas funkcijas, piemēram:

  • Ļauj norādīt, ka klienta pieprasījuma ziņojums ir jāpārraida.
  • Varat deklarēt apraides portus.
  • Tas palīdz samazināt fiziskā tīkla slodzi.

3. Pakešu režīma RPC

Pakešu režīma RPC palīdz sastādīt rindā, atdalīt RPC pieprasījumus pārraides buferī klienta pusē un pēc tam nosūtīt tos tīklā vienā paketē uz serveri. Partijas režīma RPC ir šādas funkcijas, piemēram:

  • Tas samazina pieskaitāmās izmaksas, kas saistītas ar pieprasījuma nosūtīšanu, nosūtot tos pa tīklu vienā partijā uz serveri.
  • Šis RPC protokola veids ir efektīvs tikai lietojumprogrammai, kurai nepieciešami zemāki zvanu tarifi.
  • Tam nepieciešams uzticams pārraides protokols.

Ko dara RPC?

Kad programmas priekšraksti, izmantojot RPC ietvaru, tiek apkopoti izpildāmā programmā, kompilētajā kodā, kas apzīmē attālās procedūras kodu, tiek iekļauts stubs.

Kad programma tiek palaista un procedūras izsaukums tiek izdots, stubs saņem pieprasījumu un pārsūta to klienta izpildlaika programmai lokālajā datorā. Pirmo reizi izsaucot klienta apakšnodaļu, tas sazinās ar nosaukumu serveri, lai noteiktu transporta adresi, kurā atrodas serveris.

Klienta izpildlaika programma zina, kā uzrunāt attālo datoru un servera lietojumprogrammu, un nosūta tīklā ziņojumu, kas pieprasa attālo procedūru. Tāpat serverī ir iekļauta izpildlaika programma un apakšdaļa, kas saskaras ar pašu attālo procedūru, un atbildes pieprasījuma protokoli tiek atgriezti tādā pašā veidā.

RPC iezīmes

Operētājsistēmā attālās procedūras izsaukumam (RPC) ir šādas funkcijas, piemēram:

  • RPC slēpj ziņojumu nodošanas procesa sarežģītību no lietotāja.
  • RPC izmanto tikai noteiktus OSI modeļa slāņus, piemēram, transporta slāni.
  • Klienti var sazināties ar serveri, izmantojot augstāka līmeņa valodas.
  • RPC labi darbojas gan vietējā vidē, gan attālā vidē.
  • RPC programma ir uzrakstīta vienkāršā kodā un programmētājam ir viegli saprotama.
  • Operētājsistēma var viegli apstrādāt procesus un pavedienus, kas saistīti ar RPC.
  • Operētājsistēma slēpj RPC abstrakcijas no lietotāja.

Kā darbojas RPC?

Kad tiek izsaukts attālās procedūras izsaukums, izsaukšanas vide tiek apturēta, procedūras parametri tīklā tiek pārsūtīti uz vidi, kurā procedūra ir jāizpilda, un pēc tam procedūra tiek izpildīta šajā vidē.

Kad procedūra ir pabeigta, rezultāti tiek pārsūtīti atpakaļ uz izsaukšanas vidi, kur izpilde tiek atsākta, it kā atgriežoties no parastās procedūras izsaukuma.

.tif failu
Kas ir RPC operētājsistēmā

Attālās procedūras izsaukums (RPC) operētājsistēmā darbojas šādās darbībās:

1. darbība: Klients, klienta apakšgrupa un RPC izpildes laiks tiek izpildīts klienta mašīnā.

2. darbība: Klients sāk klienta apakšdaļas procesu, parastajā veidā nododot parametrus. Tiek izsaukta procedūras parametru iepakošana šķirošana . Klienta apakšgrupa tiek glabāta klienta adrešu telpā, un tā arī lūdz vietējam RPC izpildlaikam nosūtīt ziņojumu atpakaļ uz servera apakšnodaļu.

3. darbība: Šajā posmā lietotājs var piekļūt RPC, veicot regulāru vietējo procesuālo zvanu. RPC Runtime pārvalda ziņojumu pārsūtīšanu starp tīklu starp klientu un serveri, kā arī veic atkārtotas pārraides, apstiprinājuma, maršrutēšanas un šifrēšanas uzdevumus.

4. darbība: Pēc servera procedūras pabeigšanas tas atgriežas servera apakšdaļā, kas iesaiņo (sakārto) atgriešanas vērtības ziņojumā. Pēc tam servera apakšdaļa nosūta ziņojumu atpakaļ uz transporta slāni.

5. darbība: Šajā darbībā transporta slānis nosūta atpakaļ rezultāta ziņojumu klienta transporta slānim, kas atgriež ziņojumu klienta apakšgrupai.

6. darbība: Šajā posmā klienta stubs demarshall (izpako) atgriešanas parametrus iegūtajā paketē, un izpildes process atgriežas pie zvanītāja.

Attālās procedūras izsaukuma (RPC) problēmas

Operētājsistēmā attālās procedūras izsaukums vai RPC saskārās ar dažām problēmām, kas jārisina, piemēram:

Kas ir RPC operētājsistēmā

1. RPC izpildlaiks

āmrija vs āpsis

RPC izpildlaika sistēma ir rutīnu un pakalpojumu bibliotēka, kas apstrādā tīkla sakarus, kas ir RPC mehānisma pamatā. RPC zvana laikā klienta puses un servera puses izpildlaika sistēmas kods apstrādā saistīšanu, izveido sakarus, izmantojot atbilstošu protokolu, nodod zvanu datus starp klientu un serveri un apstrādā sakaru kļūdas.

2. Stub

Saraksta funkcija ir nodrošināt programmētāja rakstītā lietojumprogrammas koda caurspīdīgumu.

    Klienta pusē:Stubls apstrādā saskarni starp klienta lokālo procedūru izsaukumu un izpildlaika sistēmu, datu kārtošanu un atdalīšanu, RPC izpildlaika protokola izsaukšanu un, ja tiek pieprasīts, dažu saistīšanas darbību veikšanu.Servera pusē:Stubls nodrošina līdzīgu saskarni starp izpildlaika sistēmu un vietējā pārvaldnieka procedūrām, ko izpilda serveris.

3. Iesiešana

Kā klients zina, kam zvanīt un kur atrodas pakalpojums?

Elastīgākais risinājums ir izmantot dinamisko saistīšanu un atrast serveri izpildes laikā, kad pirmo reizi tiek izveidots RPC. Pirmo reizi izsaucot klienta apakšnodaļu, tas sazinās ar nosaukumu serveri, lai noteiktu transporta adresi, kurā atrodas serveris. Iesējums sastāv no divām daļām:

    Mēs:Serveris, kuram ir piedāvāts pakalpojums, eksportē tam saskarni. Eksportējot saskarni, tā tiek reģistrēta sistēmā, lai klienti to varētu izmantot.Atrašanās vieta:Klientam ir jāimportē (eksportētais) interfeiss, pirms var sākt saziņu.

4. Ar RPC saistītā izsaukšanas semantika

sql izvēlieties no vairākām tabulām

To galvenokārt klasificē šādās izvēlēs:

    Mēģināt vēlreiz pieprasījuma ziņojums:Vai atkārtoti mēģināt nosūtīt pieprasījuma ziņojumu, ja serveris ir atteicies vai saņēmējs nav saņēmis ziņojumu.Dublēta filtrēšana:Noņemiet servera pieprasījumu dublikātus.Rezultātu pārsūtīšana:Lai atkārtoti nosūtītu pazaudētos ziņojumus, atkārtoti neizpildot darbības servera pusē.

RPC raksturojums

Tālāk ir norādītas attālās procedūras izsaukuma galvenās īpašības:

  • Izsauktā procedūra ir citā procesā, kas, visticamāk, atrodas citā iekārtā.
  • Procesi nedala adrešu telpu.
  • Parametri tiek nodoti tikai pēc vērtībām.
  • RPC tiek izpildīts servera procesa vidē.
  • Tas nepiedāvā piekļuvi zvanīšanas procedūras videi.

RPC priekšrocības

Šeit ir dažas RPC priekšrocības vai priekšrocības, piemēram:

  • RPC metode palīdz klientiem sazināties ar serveriem, izmantojot parasto procedūru izsaukumu augsta līmeņa valodās.
  • RPC metode ir veidota pēc vietējās procedūras izsaukuma, taču procedūra, visticamāk, tiks izpildīta citā procesā un parasti citā datorā.
  • RPC atbalsta uz procesu un pavedieniem orientētus modeļus.
  • RPC padara iekšējo ziņojumu nodošanas mehānismu slēptu no lietotāja.
  • Koda pārrakstīšanai un jaunai izstrādei ir jāpieliek minimālas pūles.
  • Attālo procedūru zvanus var izmantot izplatīšanai un vietējai videi.
  • Tas liek daudziem protokola slāņiem uzlabot veiktspēju.
  • RPC nodrošina abstrakciju. Piemēram, tīkla komunikācijas ziņojumu nodošanas raksturs lietotājam paliek paslēpts.
  • RPC ļauj izmantot lietojumprogrammas izplatītā vidē, kas nav tikai vietējā vidē.
  • Izmantojot RPC kodu, tiek samazināti pārrakstīšanas un atkārtotas izstrādes centieni.
  • Uz procesu orientēti un uz pavedieniem orientēti modeļi, kurus atbalsta RPC.

RPC trūkumi

Šeit ir daži RPC lietošanas trūkumi vai trūkumi, piemēram:

  • Attālās procedūras izsaukums nodod parametrus tikai pēc vērtībām un rādītāja vērtībām, kas nav atļauts.
  • Attālās procedūras izsaukšanas (un atgriešanas) laiks (t.i., pieskaitāmās izmaksas) var būt ievērojami mazāks nekā vietējai procedūrai.
  • Šis mehānisms ir ļoti neaizsargāts pret kļūmēm, jo ​​tas ietver sakaru sistēmu, citu mašīnu un citu procesu.
  • RPC koncepciju var īstenot dažādos veidos, kas nav standarta.
  • Nepiedāvā nekādu RPC elastību aparatūras arhitektūrai, jo tā galvenokārt ir balstīta uz mijiedarbību.
  • Procesa izmaksas palielinās attālinātas procedūras izsaukuma dēļ.