Verschil tussen systeemoproep en functieoproep

Verschil tussen systeemoproep en functieoproep
Verschil tussen systeemoproep en functieoproep

Video: Verschil tussen systeemoproep en functieoproep

Video: Verschil tussen systeemoproep en functieoproep
Video: Linux vs Windows File System Structure Compared! 2024, November
Anonim

Systeemoproep versus functieoproep

Een typische processor voert instructies één voor één uit. Maar er kunnen gevallen zijn waarin 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 systeemaanroep en een functieaanroep zijn zulke gelegenheden. Een systeemoproep is een oproep naar een subroutine die in het systeem is ingebouwd. Een functie-aanroep 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 praten. Wanneer een programma om een service moet vragen (waarvoor het zelf geen toestemming heeft om dat te doen) vanuit de kernel van het besturingssysteem, gebruikt het een systeemaanroep. Processen op gebruikersniveau hebben niet dezelfde machtigingen als de processen die rechtstreeks interactie hebben met het besturingssysteem. Om bijvoorbeeld te communiceren met een extern I/O-apparaat of om te communiceren met andere processen, gebruikt een programma systeemaanroepen.

Wat is een functieoproep?

Een functie-aanroep 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 misschien slechts een eenvoudige taak uit, die ook onafhankelijk is van de resterende programmacodering. Een functie is zo gecodeerd dat deze meerdere keren en vanaf verschillende plaatsen kan worden aangeroepen (zelfs vanuit andere functies). Wanneer een functie wordt aangeroepen, kan de processor naar de plaats 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 het 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 een reeks subroutines zijn (bijv. threaded code compilatie).

Wat is het verschil tussen systeemoproep en functieoproep?

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

Aanbevolen: