logo

Hvad er RPC i operativsystemet?

Remote Procedure Call eller RPC er en kraftfuld teknik til at konstruere distribuerede, klient-server-baserede applikationer. Det er også kendt som et funktionskald eller et subrutinekald. Et fjernprocedurekald er, når et computerprogram får en procedure til at udføres i et andet adresserum, kodet som et lokalt procedurekald, uden at programmøren eksplicit angiver detaljerne for fjerninteraktionen. Programmøren skriver i det væsentlige den samme kode, uanset om subrutinen er lokal for det eksekverende program eller fjernbetjening. Dette er en form for klient-server-interaktion implementeret via et anmodning-svar-meddelelses-overførselssystem.

Hvad er RPC i operativsystemet

RPC-modellen indebærer lokationsgennemsigtighed at opkaldsprocedurerne stort set er de samme, uanset om de er lokalt eller eksternt. Normalt er de ikke identiske, så lokale opkald kan skelnes fra fjernopkald. Fjernopkald er normalt af størrelsesorden langsommere og mindre pålidelige end lokale opkald, så det er vigtigt at skelne dem.

RPC'er er en form for inter-process communication (IPC), idet forskellige processer har forskellige adresserum. De har forskellige virtuelle adresserum på den samme værtsmaskine, selvom det fysiske adresserum er det samme. Mens hvis de er på forskellige værter, er det fysiske adresserum anderledes.

Sådan foretager du et fjernopkald

Det kaldende miljø suspenderes, procedureparametre overføres på tværs af netværket til det miljø, hvor proceduren skal udføres, og proceduren udføres der.

Hvad er RPC i operativsystemet

Når proceduren afsluttes og producerer sine resultater, overføres den tilbage til det kaldende miljø, hvor udførelsen genoptages, som om den vender tilbage fra et almindeligt procedurekald.

BEMÆRK: RPC er især velegnet til klient-server (f.eks. forespørgsel-svar) interaktion, hvor kontrolstrømmen skifter mellem den, der ringer og den, der ringer. Konceptuelt kører klienten og serveren ikke samtidigt; i stedet springer udførelsestråden fra den, der ringer til den, der kalder, og derefter tilbage igen.

Typer af RPC

Der er tre typer fjernprocedurekald (RPC) i et operativsystem, såsom:

Hvad er RPC i operativsystemet

1. Callback RPC

Denne type RPC muliggør et P2P-paradigme mellem deltagende processer. Det hjælper en proces at være både klient- og servertjenester. Callback RPC har følgende funktioner, såsom:

java scan.nextstring
  • Fjernbehandlede interaktive applikationsproblemer.
  • Tilbyder server med klienthåndtering.
  • Callback får klientprocessen til at vente.
  • Administrer tilbagekalds-deadlocks.
  • Det letter et peer-to-peer-paradigme blandt deltagende processer.

2. Broadcast RPC

Broadcast RPC er en klients anmodningsudsendelse på netværket, behandlet af alle servere med metoden til at behandle den anmodning. Broadcast RPC har følgende funktioner, såsom:

  • Giver dig mulighed for at angive, at klientens anmodningsmeddelelse skal udsendes.
  • Du kan erklære broadcast-porte.
  • Det er med til at reducere belastningen på det fysiske netværk.

3. Batch-mode RPC

Batch-mode RPC hjælper med at sætte RPC-anmodninger i kø, adskille RPC-anmodninger i en transmissionsbuffer på klientsiden og derefter sende dem på et netværk i én batch til serveren. Batch-mode RPC har følgende funktioner, såsom:

  • Det minimerer omkostningerne ved at sende en anmodning ved at sende dem over netværket i én batch til serveren.
  • Denne type RPC-protokol er kun effektiv til en applikation, der har brug for lavere opkaldstakster.
  • Den har brug for en pålidelig transmissionsprotokol.

Hvad gør RPC?

Når programsætninger, der bruger RPC-rammeværket, kompileres til et eksekverbart program, er en stub inkluderet i den kompilerede kode, der repræsenterer fjernprocedurekoden.

Når programmet køres, og procedurekaldet udstedes, modtager stubben anmodningen og videresender den til et klient-runtime-program på den lokale computer. Første gang klientstubben kaldes, kontakter den en navneserver for at bestemme transportadressen, hvor serveren er.

Klient-runtime-programmet ved, hvordan det adresserer fjerncomputeren og serverapplikationen og sender beskeden på tværs af netværket, der anmoder om fjernproceduren. På samme måde inkluderer serveren et runtime-program og stub, der interfacer med selve fjernproceduren, og Response-request-protokoller returneres på samme måde.

Funktioner af RPC

I et operativsystem har RPC (Remote Procedure Call) følgende funktioner, såsom:

round robin planlægningsalgoritme
  • RPC skjuler kompleksiteten af ​​meddelelsesoverførselsprocessen for brugeren.
  • RPC bruger kun specifikke lag af OSI-modellen som transportlaget.
  • Klienter kan kommunikere med serveren ved at bruge sprog på højere niveau.
  • RPC fungerer godt med både lokale miljøer og fjerntliggende miljøer.
  • RPC-programmet er skrevet i simpel kode og er let at forstå af programmøren.
  • Operativsystemet kan nemt håndtere processer og tråde involveret i RPC.
  • Operativsystemet skjuler abstraktionerne af RPC for brugeren.

Hvordan fungerer RPC?

Når et fjernprocedurekald påkaldes, suspenderes det kaldende miljø, procedureparametrene overføres på tværs af netværket til det miljø, hvor proceduren skal udføres, og proceduren udføres derefter i det miljø.

Når proceduren er færdig, overføres resultaterne tilbage til det kaldende miljø, hvor udførelsen genoptages, som om den vender tilbage fra et almindeligt procedurekald.

Hvad er RPC i operativsystemet

Et fjernprocedurekald (RPC) fungerer i følgende trin i et operativsystem:

Trin 1: Klienten, klientstubben og RPC-køretiden udføres på klientmaskinen.

Trin 2: En klient starter en klientstub-proces ved at videregive parametre på den sædvanlige måde. Pakningen af ​​procedureparametrene kaldes rangering . Klientstubben gemmer i klientens eget adresserum, og den beder også den lokale RPC Runtime om at sende tilbage til serverstubben.

Trin 3: I dette trin kan brugeren få adgang til RPC ved at foretage et almindeligt lokalt procedureopkald. RPC Runtime styrer transmissionen af ​​meddelelser mellem netværket på tværs af klient og server, og den udfører også jobbet med gentransmission, bekræftelse, routing og kryptering.

Trin 4: Efter at have gennemført serverproceduren vender den tilbage til serverstubben, som pakker (marshaller) returværdierne i en besked. Serverstubben sender derefter en besked tilbage til transportlaget.

Trin 5: I dette trin sender transportlaget resultatmeddelelsen tilbage til klienttransportlaget, som returnerer en meddelelse til klientstubben.

Trin 6: I dette trin demarshaller (udpakker) klientstubben returparametrene i den resulterende pakke, og eksekveringsprocessen vender tilbage til den, der ringer.

rr algoritme

Problemer med Remote Procedure Call (RPC)

I et operativsystem stod fjernprocedurekald eller RPC over for nogle problemer, der skal løses, såsom:

Hvad er RPC i operativsystemet

1. RPC Runtime

RPC-runtime-systemet er et bibliotek af rutiner og tjenester, der håndterer den netværkskommunikation, der ligger til grund for RPC-mekanismen. I løbet af et RPC-opkald håndterer runtime-systemkode på klientsiden og serversiden binding, etablerer kommunikation over en passende protokol, videregiver opkaldsdata mellem klienten og serveren og håndterer kommunikationsfejl.

2. Stub

Stubbens funktion er at give gennemsigtighed til den programmørskrevne applikationskode.

    På klientsiden:Stubben håndterer grænsefladen mellem klientens lokale procedurekald og runtime-systemet, rangerer og unmarsharinger data, kalder RPC runtime-protokollen og udfører, hvis det anmodes om det, nogle af bindingstrinnene.På serversiden:Stubben giver en lignende grænseflade mellem runtime-systemet og de lokale administratorprocedurer, der udføres af serveren.

3. Indbinding

hvordan man udfører et script

Hvordan ved kunden, hvem han skal ringe til, og hvor tjenesten er bosat?

Den mest fleksible løsning er at bruge dynamisk binding og finde serveren på køretid, når RPC'en først laves. Første gang klientstubben kaldes, kontakter den en navneserver for at bestemme transportadressen, hvor serveren ligger. Indbindingen består af to dele:

    Vi:En server, der har en tjeneste at tilbyde, eksporterer en grænseflade til den. Eksport af en grænseflade registrerer den i systemet, så klienter kan bruge den.Placering:En klient skal importere en (eksporteret) grænseflade, før kommunikationen kan begynde.

4. Den kaldende semantik forbundet med RPC

Det er hovedsageligt klassificeret i følgende valg,

    Besked med anmodning om forsøg igen:Om der skal prøves igen at sende en anmodningsmeddelelse, når en server har fejlet, eller modtageren ikke har modtaget beskeden.Dubletfiltrering:Fjern de duplikerede serveranmodninger.Gentransmission af resultater:At sende mistede beskeder igen uden at genudføre operationerne på serversiden.

Karakteristika for RPC

Her er de væsentlige egenskaber ved fjernprocedurekald:

  • Den kaldte procedure er i en anden proces, som sandsynligvis vil ligge i en anden maskine.
  • Processerne deler ikke adresseplads.
  • Parametre sendes kun af værdier.
  • RPC udføres i miljøet af serverprocessen.
  • Det giver ikke adgang til opkaldsprocedurens miljø.

Fordele ved RPC

Her er nogle fordele eller fordele ved RPC, såsom:

  • RPC-metoden hjælper klienter med at kommunikere med servere ved den konventionelle brug af procedurekald på højt niveau sprog.
  • RPC-metoden er modelleret på det lokale procedurekald, men proceduren vil højst sandsynligt blive udført i en anden proces og normalt en anden computer.
  • RPC understøtter proces- og trådorienterede modeller.
  • RPC gør den interne meddelelsesoverførselsmekanisme skjult for brugeren.
  • Indsatsen for at omskrive og genudvikle koden er et minimum.
  • Fjernprocedurekald kan bruges til distribution og det lokale miljø.
  • Det forpligter mange af protokollagene til at forbedre ydeevnen.
  • RPC giver abstraktion. For eksempel forbliver netværkskommunikationens meddelelsesoverførsel skjult for brugeren.
  • RPC tillader brugen af ​​applikationerne i et distribueret miljø, der ikke kun er i det lokale miljø.
  • Med RPC-kode minimeres indsatsen for omskrivning og omudvikling.
  • Procesorienterede og trådorienterede modeller understøttet af RPC.

Ulemper ved RPC

Her er nogle ulemper eller ulemper ved at bruge RPC, såsom:

  • Fjernprocedureopkald passerer kun parametre efter værdier og pointerværdier, hvilket ikke er tilladt.
  • Tid til fjernopkald (og retur) (dvs. omkostninger) kan være betydeligt lavere end en lokal procedure.
  • Denne mekanisme er meget sårbar over for fejl, da den involverer et kommunikationssystem, en anden maskine og en anden proces.
  • RPC-konceptet kan implementeres på forskellige måder, hvilket ikke er standard.
  • Tilbyder ikke nogen fleksibilitet i RPC til hardwarearkitektur, da det for det meste er interaktionsbaseret.
  • Omkostningerne ved processen øges på grund af et fjernprocedurekald.