Appel système
Un appel système est une requête effectuée par un programme auprès du système d’exploitation. Il permet à une application d’accéder aux fonctions et aux commandes de l’API du système d’exploitation.
Les appels système effectuent des opérations au niveau du système, comme communiquer avec des périphériques matériels et lire ou écrire des fichiers. En effectuant des appels système, les développeurs peuvent utiliser des fonctions préécrites prises en charge par le système d’exploitation (OS), au lieu de les écrire eux-mêmes. Cela simplifie le développement, améliore la stabilité des applications et rend les applications plus « portables » entre différentes versions d’un OS.
Fonctionnement des appels système
Les applications s’exécutent dans une zone de mémoire appelée espace utilisateur. Un appel système accède au noyau du système d’exploitation, qui s’exécute dans l’espace noyau. Lorsqu’une application effectue un appel système, elle doit d’abord demander l’autorisation du noyau. Cela peut se faire au moyen d’une demande d’interruption, qui met en pause le processus actuel et transfère le contrôle au noyau.
Si la requête est autorisée, le noyau la traite, par exemple en créant ou en supprimant un fichier. Une fois l’opération terminée, le noyau renvoie la sortie à l’application, qui transfère les données de l’espace noyau vers l’espace utilisateur en mémoire. L’application reçoit la sortie du noyau sous forme d’entrée. Dans le code source d’un programme, il peut s’agir de la valeur d’un paramètre ou d’une valeur de retour dans une fonction. Une fois l’entrée reçue, l’application reprend le processus.
Un appel système de base, comme l’obtention de la date et de l’heure du système, peut prendre quelques nanosecondes. Un appel système plus avancé, comme l’établissement d’une communication avec un périphérique réseau, peut nécessiter quelques secondes. Pour éviter les goulots d’étranglement, la plupart des systèmes d’exploitation créent un thread distinct du noyau pour chaque appel système. Les systèmes d’exploitation modernes sont multithread, ce qui signifie qu’ils peuvent traiter plusieurs appels système à la fois.
Testez vos connaissances