Systeemaanroep
Een systeemaanroep is een verzoek van een programma aan het besturingssysteem. Hiermee kan een applicatie toegang krijgen tot functies en opdrachten uit de API van het besturingssysteem.
Systeemaanroepen voeren bewerkingen op systeemniveau uit, zoals communiceren met hardwareapparaten en het lezen en schrijven van bestanden. Met systeemaanroepen kunnen ontwikkelaars vooraf geschreven functies gebruiken die door het besturingssysteem (OS) worden ondersteund, in plaats van deze helemaal zelf te schrijven. Dit vereenvoudigt de ontwikkeling, verbetert de stabiliteit van apps en maakt apps beter "overdraagbaar" tussen verschillende versies van een OS.
Hoe systeemaanroepen werken
Applicaties worden uitgevoerd binnen een geheugengebied dat geheugen wordt genoemd, namelijk gebruikersruimte. Een systeemaanroep heeft toegang tot de kernel van het besturingssysteem, die in de kernelruimte wordt uitgevoerd. Wanneer een applicatie een systeemaanroep uitvoert, moet deze eerst toestemming vragen aan de kernel. Dit kan gebeuren met een interruptverzoek, dat het huidige proces pauzeert en de controle overdraagt aan de kernel.
Als het verzoek wordt toegestaan, verwerkt de kernel het verzoek, bijvoorbeeld door een bestand te maken of te verwijderen. Wanneer de bewerking is voltooid, geeft de kernel de uitvoer door aan de applicatie, die gegevens van de kernelruimte naar de gebruikersruimte in het geheugen overdraagt. De applicatie ontvangt de uitvoer van de kernel als invoer. In de broncode van een programma kan dit een waarde van een parameter of een retourwaarde binnen een functie zijn. Zodra de invoer is ontvangen, hervat de applicatie het proces.
Een eenvoudige systeemaanroep, zoals het opvragen van de systeemdatum en -tijd, kan enkele nanoseconden duren. Een geavanceerdere systeemaanroep, zoals het tot stand brengen van communicatie met een netwerkapparaat, kan enkele seconden duren. Om knelpunten te voorkomen, starten de meeste besturingssystemen een afzonderlijke kernel-thread voor elke systeemaanroep. Moderne besturingssystemen zijn multithreaded, wat betekent dat ze meerdere systeemaanroepen tegelijk kunnen verwerken.
Test je kennis