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: Et sted mellem Horsens og Vejle: #6 - Lav på batteri - høj på kærlighed 2024, November
Anonim

Systemopkald vs Funktionsopkald

En typisk processor udfører instruktioner en efter en. Men der kan være lejligheder, hvor processoren skal stoppe den aktuelle instruktion og udføre et andet program eller kodesegment (bosat et andet sted). Efter at have gjort dette, vender processoren tilbage til normal udførelse og fortsætter fra det sted, hvor den slap. Et systemopkald og et funktionsopkald er sådanne lejligheder. Et systemopkald er et kald til en subrutine, der er indbygget i systemet. Et funktionsopkald 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 af sig selv) fra kernen i operativsystemet, bruger det et systemopkald. Processer på brugerniveau har ikke de samme tilladelser som processerne, der direkte interagerer med operativsystemet. For eksempel for at kommunikere med og ekstern I / O-enhed eller interagere med andre processer bruger et program systemopkald.

Hvad er et funktionsopkald?

Et funktionsopkald kaldes også et subrutineopkald. 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 tung arbejdsbyrde, og subrutinen udfører måske bare 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 inden for andre funktioner). Når en funktion kaldes, går processoren muligvis hen, hvor koden til funktionen er bosat, og udfører instruktionerne for funktionen en efter en. Efter at have udført funktionerne, vender processoren tilbage til nøjagtigt, hvor den slap, og fortsætter udførelsen fra den næste instruktion. Funktioner er et godt værktøj til genbrug af kode. Mange moderne programmeringssprog understøtter funktioner. En samling funktioner kaldes et bibliotek. Biblioteker bruges ofte som middel til deling og handel med software. I nogle tilfælde kan hele programmet være en sekvens af underrutiner (f.eks. Samling af gevindkoder).

Hvad er forskellen mellem systemopkald og funktionsopkald?

Systemopkald er et opkald til en subrutine, der er indbygget i systemet, mens et funktionsopkald er et opkald til en subrutine inden for programmet. I modsætning til funktionsopkald bruges systemopkald, når et program skal udføre en opgave, som det ikke har privilegium til. Systemopkald er indgangspunkter i operativsystemets kerne og er ikke knyttet til programmet (som funktionsopkald). I modsætning til systemopkald er funktionsopkald bærbare. Tidsomkostninger for et systemopkald er mere end omkostningerne for et funktionsopkald, fordi en overgang mellem brugertilstand og kernetilstand skal finde sted. Systemopkald udføres i kerneadresseområdet, mens funktionsopkald udføres i brugeradresseområdet.

Anbefalet: