Verschil tussen systeemoproep en functieoproep

Anonim

Systeemoproep versus functieoproep

moet stopzetten. Een typische processor voert een voor een instructies uit. Maar er kunnen situaties zijn waar de processor de huidige instructie moet stoppen en een ander programma of code segment uitvoeren (op een andere plaats). Vervolgens keert de processor terug naar de normale uitvoering en gaat verder van waar het weggelaten is. Een systeemoproep en een functieoproep zijn dergelijke gelegenheden. Een systeemoproep is een oproep naar een subroutine die in het systeem is ingebouwd. Een functieoproep is een oproep naar een subroutine binnen het programma zelf.

Wat is een systeemoproep?

Systeemoproepen bieden programma's die op de computer lopen, een interface om met het besturingssysteem te praten. Wanneer een programma moet vragen voor een dienst (waarvoor het niet zelf toestemming heeft) vanuit de kern van het besturingssysteem, gebruikt het een systeemgesprek. Gebruikersprocessen hebben niet dezelfde rechten als de processen die direct met het besturingssysteem werken. Om bijvoorbeeld te communiceren met en extern I / O-apparaat of om met andere processen te communiceren, gebruikt een programma systeemoproepen.

Wat is een functieoproep?

Een functieoproep wordt ook een subroutine-oproep genoemd. Een subroutine (ook bekend als een procedure, functie, methode of routine) 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 kan gewoon een eenvoudige taak uitvoeren, die ook onafhankelijk is van de overgebleven programmacode. Een functie is zodanig gecodeerd dat het meerdere keren en op verschillende plaatsen (zelfs vanuit andere functies) kan worden genoemd. Wanneer een functie wordt genoemd, kan de processor gaan naar waar de code voor de functie woont en de instructies van de functie een voor één uitvoeren. Nadat u de functies hebt voltooid, zal de processor terugkeren naar precies waar het weggelaten en de uitvoering voortzetten vanaf de volgende instructie. Functies zijn een geweldig hulpmiddel voor codehergebruik. Veel moderne programmeertalen ondersteunen functies. Een verzameling functies heet een bibliotheek. Bibliotheken worden vaak gebruikt als communicatie- en handelssoftware. In sommige gevallen kan het hele programma een sequentie zijn van subroutines (bijv. Threaded code compilation).

Wat is het verschil tussen systeemoproep en functieoproep?

Systeemoproep is een oproep naar een subroutine die in het systeem is ingebouwd, terwijl een functieoproep een oproep naar een subroutine binnen het programma is. In tegenstelling tot functiegesprekken worden systeemoproepen gebruikt wanneer een programma een taak moet uitvoeren, waarvoor het geen privilege heeft. Systeemoproepen zijn toegangspunten naar de kern van het besturingssysteem en zijn niet gekoppeld aan het programma (zoals functieoproepen).In tegenstelling tot systeemoproepen zijn functiegesprekken draagbaar. Tijd overhead van een systeemgesprek is meer dan de overhead voor een functieoproep omdat een overgang tussen de gebruikersmodus en de kernelmodus moet plaatsvinden. Systeemoproepen worden uitgevoerd in de kernel-adresruimte, terwijl functieoproepen worden uitgevoerd in de gebruikersadresruimte.