Systemanrop vs funksjonsanrop
En typisk prosessor utfører instruksjoner en etter en. Men det kan være tilfeller der prosessoren må stoppe nåværende instruksjon og utføre et annet program eller kodesegment (bosatt på et annet sted). Etter å ha gjort dette, går prosessoren tilbake til normal utførelse og fortsetter fra hvor den sluttet. Et systemanrop og et funksjonsanrop er slike anledninger. Et systemanrop er et anrop til en subrutine som er innebygd i systemet. Et funksjonsanrop er et anrop til en subrutine i selve programmet.
Hva er et systemanrop?
Systemanrop gir programmer som kjører på datamaskinen et grensesnitt for å snakke med operativsystemet. Når et program trenger å be om en tjeneste (for hvilken det ikke har tillatelse til å gjøre det selv) fra kjernen til operativsystemet, bruker det et systemanrop. Brukernivåprosesser har ikke samme tillatelser som prosessene som er i direkte samspill med operativsystemet. For eksempel, for å kommunisere med og ekstern I / O-enhet eller for å samhandle med andre prosesser, bruker et program systemanrop.
Hva er en funksjonsanrop?
Et funksjonsanrop kalles også et subrutineanrop. En subrutine (også kjent som en prosedyre, funksjon, metode eller rutine) er en del av et større program som er ansvarlig for å utføre en bestemt oppgave. Det større programmet kan utføre en tung arbeidsbelastning, og subrutinen kan utføre bare en enkel oppgave, som også er uavhengig av gjenværende programkoding. En funksjon er kodet på en slik måte at den kan kalles flere ganger og fra forskjellige steder (selv fra andre funksjoner). Når en funksjon kalles, kan prosessoren gå til hvor koden for funksjonen er bosatt og utføre instruksjonene for funksjonen en etter en. Etter at funksjonene er fullført, går prosessoren tilbake til nøyaktig hvor den slått av og fortsetter kjøringen fra neste instruksjon. Funksjoner er et flott verktøy for kod gjenbruk. Mange moderne programmeringsspråk støtter funksjoner. En samling av funksjoner kalles et bibliotek. Biblioteker blir ofte brukt som deling og trading programvare. I noen tilfeller kan hele programmet være en sekvens av subrutiner (for eksempel gjenget kodeoppstilling).
Hva er forskjellen mellom systemanrop og funksjonsanrop?
Systemanrop er et anrop til en subrutine som er innebygd i systemet, mens et funksjonsanrop er et anrop til en subrutine i programmet. I motsetning til funksjonssamtaler brukes systemanrop når et program trenger å utføre en oppgave, som det ikke har privilegium for. Systemanrop er inngangspunkter i operativsystemkjernen og er ikke knyttet til programmet (for eksempel funksjonssamtaler). I motsetning til systemanrop er funksjonssamtaler bærbare. Tidsoverhode for et systemanrop er mer enn overhead for et funksjonsanrop fordi en overgang mellom brukermodus og kjernemodus må skje. Systemanrop utføres i kjerne adresseplass, mens funksjonssamtaler utføres i brukeradresseplass.