Forskellen mellem systemopkald og funktionsopkald

Forskellen mellem systemopkald og funktionsopkald
Forskellen mellem systemopkald og funktionsopkald

Video: Forskellen mellem systemopkald og funktionsopkald

Video: Forskellen mellem systemopkald og funktionsopkald
Video: What are Drive Partitions? 2024, November
Anonim

Systemopkald kontra funktionsopkald

En typisk processor udfører instruktioner én efter én. Men der kan være tilfælde, hvor processoren er nødt til at stoppe den aktuelle instruktion og udføre et andet program eller kodesegment (boende et andet sted). Efter at have gjort dette vender processoren tilbage til normal udførelse og fortsætter, hvor den slap. Et systemkald og et funktionskald er sådanne lejligheder. Et systemkald er et opkald til en subrutine, der er indbygget i systemet. Et funktionskald er et opkald til en underrutine i selve programmet.

Hvad er et systemopkald?

Systemopkald giver programmer, der kører på computeren, en grænseflade til at tale med operativsystemet. Når et program skal bede om en tjeneste (som det ikke har tilladelse til at gøre det selv) fra kernen af operativsystemet, bruger det et systemkald. Processer på brugerniveau har ikke de samme tilladelser som de processer, der interagerer direkte med operativsystemet. For eksempel, for at kommunikere med en ekstern I/O-enhed eller til at interagere med andre processer, bruger et program systemkald.

Hvad er et funktionsopkald?

Et funktionskald kaldes også et subrutinekald. En subrutine (også kendt som en procedure, funktion, metode eller rutine) er en del af et større program, der er ansvarlig for at udføre en bestemt opgave. Det større program kan udføre en stor arbejdsbyrde, og subrutinen udfører muligvis blot en simpel opgave, som også er uafhængig af den resterende programkodning. En funktion er kodet på en sådan måde, at den kan kaldes flere gange og fra forskellige steder (selv fra andre funktioner). Når en funktion kaldes, kan processoren gå til det sted, hvor koden for funktionen befinder sig, og udføre instruktionerne for funktionen én efter én. Efter at have fuldført funktionerne, vender processoren tilbage til præcis, hvor den slap og fortsætter udførelsen fra den næste instruktion. Funktioner er et fantastisk værktøj til genbrug af kode. Mange moderne programmeringssprog understøtter funktioner. En samling af funktioner kaldes et bibliotek. Biblioteker bruges ofte som midler til deling og handel med software. I nogle tilfælde kan hele programmet være en sekvens af underrutiner (f.eks. kompilering med gevindkode).

Hvad er forskellen mellem systemkald og funktionsopkald?

Systemkald er et kald til en underrutine indbygget i systemet, mens et funktionskald er et kald til en underrutine i programmet. I modsætning til funktionskald bruges systemkald, når et program skal udføre en opgave, som det ikke har privilegier til. Systemkald er indgangspunkter til operativsystemkernen og er ikke knyttet til programmet (som funktionskald). I modsætning til systemopkald er funktionsopkald bærbare. Tidsoverhead for et systemkald er mere end overhead for et funktionskald, fordi en overgang mellem brugertilstand og kernetilstand skal finde sted. Systemkald udføres i kerneadresserum, mens funktionskald udføres i brugeradresserum.

Anbefalede: