Stelseloproep vs Funksieoproep
'n Tipiese verwerker voer instruksies een vir een uit. Maar daar kan geleenthede wees waar die verwerker huidige instruksies moet stop en 'n ander program of kodesegment (wat op 'n ander plek woon) moet uitvoer. Nadat dit gedoen is, keer die verwerker terug na normale uitvoering en gaan voort van waar dit opgehou het. 'n Stelseloproep en 'n funksieoproep is sulke geleenthede. 'n Stelseloproep is 'n oproep na 'n subroetine wat in die stelsel ingebou is. 'n Funksie-oproep is 'n oproep na 'n subroetine binne die program self.
Wat is 'n stelseloproep?
Stelseloproepe bied programme wat op die rekenaar loop 'n koppelvlak om met die bedryfstelsel te praat. Wanneer 'n program vir 'n diens (waarvoor dit nie toestemming het om dit self te doen nie) van die kern van die bedryfstelsel moet vra, gebruik dit 'n stelseloproep. Gebruikersvlakprosesse het nie dieselfde toestemmings as die prosesse wat direk met die bedryfstelsel in wisselwerking tree nie. Byvoorbeeld, om met 'n eksterne I/O-toestel te kommunikeer of om met enige ander prosesse te kommunikeer, gebruik 'n program stelseloproepe.
Wat is 'n funksie-oproep?
'n Funksie-oproep word ook 'n subroetine-oproep genoem. 'n Subroetine (ook bekend as 'n prosedure, funksie, metode of roetine) is deel van 'n groter program wat verantwoordelik is vir die uitvoering van 'n spesifieke taak. Die groter program kan 'n swaar werklading uitvoer, en die subroetine voer dalk net 'n eenvoudige taak uit, wat ook onafhanklik is van die oorblywende programkodering. 'n Funksie is op so 'n manier gekodeer dat dit verskeie kere en vanaf verskillende plekke (selfs van binne ander funksies) opgeroep kan word. Wanneer 'n funksie opgeroep word, kan die verwerker gaan na waar die kode vir die funksie is en die instruksies van die funksie een vir een uitvoer. Nadat die funksies voltooi is, sal die verwerker terugkeer na presies waar dit opgehou het en voortgaan met die uitvoering vanaf die volgende instruksie. Funksies is 'n wonderlike hulpmiddel vir hergebruik van kode. Baie moderne programmeertale ondersteun funksies. 'n Versameling funksies word 'n biblioteek genoem. Biblioteke word dikwels gebruik om sagteware te deel en te verhandel. In sommige gevalle kan die hele program 'n reeks subroetines wees (bv. skroefkodesamestelling).
Wat is die verskil tussen Stelseloproep en Funksieoproep?
Stelseloproep is 'n oproep na 'n subroetine wat in die stelsel ingebou is, terwyl 'n funksieoproep 'n oproep na 'n subroetine binne die program is. Anders as funksie-oproepe, word stelseloproepe gebruik wanneer 'n program een of ander taak moet uitvoer, waarvoor dit nie die voorreg het nie. Stelseloproepe is toegangspunte na die bedryfstelselkern en is nie aan die program gekoppel nie (soos funksie-oproepe). In teenstelling met stelseloproepe, is funksieoproepe draagbaar. Tydbokoste van 'n stelseloproep is meer as die bokoste vir 'n funksieoproep omdat 'n oorgang tussen die gebruikermodus en die kernmodus moet plaasvind. Stelseloproepe word in kernadresspasie uitgevoer, terwyl funksieoproepe in gebruikeradresspasie uitgevoer word.