Verschil Tussen Systeemoproep En Functieaanroep

Verschil Tussen Systeemoproep En Functieaanroep
Verschil Tussen Systeemoproep En Functieaanroep

Video: Verschil Tussen Systeemoproep En Functieaanroep

Video: Verschil Tussen Systeemoproep En Functieaanroep
Video: Bloedgroepen 2024, November
Anonim

Systeemoproep versus functieoproep

Een typische processor voert de instructies een voor een uit. Maar er kunnen situaties zijn waarbij de processor de huidige instructie moet stoppen en een ander programma of codesegment moet uitvoeren (dat zich op een andere plaats bevindt). Hierna keert de processor terug naar de normale uitvoering en gaat verder waar hij was gebleven. Een systeemoproep en een functieaanroep zijn zulke gelegenheden. Een systeemoproep is een oproep naar een subroutine die in het systeem is ingebouwd. Een functieaanroep is een aanroep naar een subroutine binnen het programma zelf.

Wat is een systeemoproep?

Systeemoproepen bieden programma's die op de computer worden uitgevoerd een interface om met het besturingssysteem te communiceren. Wanneer een programma om een service (waarvoor het zelf geen toestemming heeft) van de kernel van het besturingssysteem moet vragen, gebruikt het een systeemaanroep. Processen op gebruikersniveau hebben niet dezelfde machtigingen als de processen die rechtstreeks in wisselwerking staan met het besturingssysteem. Om bijvoorbeeld te communiceren met een extern I / O-apparaat of om te communiceren met andere processen, gebruikt een programma systeemoproepen.

Wat is een functieaanroep?

Een functieaanroep wordt ook wel een subroutine-aanroep genoemd. Een subroutine (ook wel een procedure, functie, methode of routine genoemd) maakt deel uit van een groter programma dat verantwoordelijk is voor het uitvoeren van een specifieke taak. Het grotere programma kan een zware werklast uitvoeren en de subroutine voert mogelijk slechts een eenvoudige taak uit, die ook onafhankelijk is van de resterende programmacodering. Een functie is zo gecodeerd dat deze meerdere keren en vanuit verschillende plaatsen kan worden aangeroepen (zelfs vanuit andere functies). Wanneer een functie wordt aangeroepen, kan de processor naar de plek gaan waar de code voor de functie zich bevindt en de instructies van de functie één voor één uitvoeren. Nadat de functies zijn voltooid, keert de processor terug naar precies waar hij was gebleven en gaat hij verder met de uitvoering vanaf de volgende instructie. Functies zijn een geweldig hulpmiddel voor hergebruik van code. Veel moderne programmeertalen ondersteunen functies. Een verzameling functies wordt een bibliotheek genoemd. Bibliotheken worden vaak gebruikt als middel om software te delen en te verhandelen. In sommige gevallen kan het hele programma bestaan uit een reeks subroutines (bijv. Compilatie van threaded code).

Wat is het verschil tussen System Call en Function Call?

Systeemoproep is een oproep naar een subroutine die in het systeem is ingebouwd, terwijl een functieaanroep een oproep is naar een subroutine binnen het programma. In tegenstelling tot functieaanroepen worden systeemoproepen gebruikt wanneer een programma een taak moet uitvoeren waarvoor het geen privileges heeft. Systeemoproepen zijn toegangspunten tot de kernel van het besturingssysteem en zijn niet aan het programma gekoppeld (zoals functieaanroepen). In tegenstelling tot systeemoproepen zijn functieaanroepen draagbaar. De tijdoverhead van een systeemaanroep is meer dan de overhead voor een functieaanroep omdat er een overgang tussen de gebruikersmodus en de kernelmodus moet plaatsvinden. Systeemoproepen worden uitgevoerd in de adresruimte van de kernel, terwijl functieaanroepen worden uitgevoerd in de adresruimte van de gebruiker.

Aanbevolen: