Appel système
Un appel système est une demande faite par un programme au le système d'exploitation. Cela permet à application pour accéder fonctions et les commandes du système d'exploitation API.
Les appels système effectuent des opérations au niveau du système, telles que la communication avec matériel appareils et lecture et écriture fichiers. En passant des appels système, les développeurs peuvent utiliser des fonctions pré-écrites prises en charge par le système d'exploitation au lieu de les écrire à partir de zéro. Cela simplifie le développement, améliore la stabilité des applications et rend les applications plus "portables" entre différentes versions d'un système d'exploitation.
Comment fonctionnent les appels système
Les applications fonctionnent dans une zone de Mémoire appelé espace utilisateur. Un appel système accède au système d'exploitation kernel, qui tourne dans l’espace noyau. Lorsqu'une application effectue un appel système, elle doit d'abord demander l'autorisation du noyau. Cela peut être fait avec un demande d'interruption, qui met en pause le courant processus et transfère le contrôle au noyau.
Si la demande est autorisée, le noyau la traite, par exemple en créant ou en supprimant un fichier. Lorsque l'opération est terminée, le noyau passe le sortie retour à l'application, qui transfère date de l'espace noyau à l'espace utilisateur en mémoire. L’application reçoit la sortie du noyau en tant que contribution. dans le code source d'un programme, cela peut être un paramètre valeur ou 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 obtenir la date et l'heure du système, peut prendre quelques nanosecondes. Un appel système plus avancé, tel que l’établissement de la communication avec un réseau l'appareil peut nécessiter quelques secondes. Afin d'éviter les goulots d'étranglement, la plupart des systèmes d'exploitation lancent un noyau distinct fil pour chaque appel système. Les systèmes d'exploitation modernes sont multithread, ce qui signifie qu’ils peuvent traiter plusieurs appels système en même temps.