Appel système vs appel de fonction
Un processeur typique exécute les instructions une par une. Mais il peut arriver que le processeur doive arrêter l'instruction en cours et exécuter un autre programme ou un autre segment de code (résidant ailleurs). Cela fait, le processeur reprend son exécution normale et continue là où il s’était arrêté. Un appel système et un appel de fonction sont de telles occasions. Un appel système est un appel à un sous-programme intégré au système. Un appel de fonction est un appel à un sous-programme dans le programme même.
Qu'est-ce qu'un appel système?
Les appels système fournissent aux programmes exécutés sur l'ordinateur une interface permettant de dialoguer avec le système d'exploitation. Lorsqu'un programme doit demander un service (pour lequel il n'a pas l'autorisation de le faire lui-même) au noyau du système d'exploitation, il utilise un appel système. Les processus de niveau utilisateur ne disposent pas des mêmes autorisations que les processus interagissant directement avec le système d'exploitation. Par exemple, pour communiquer avec un périphérique d’E / S externe ou pour interagir avec tout autre processus, un programme utilise les appels système..
Qu'est-ce qu'un appel de fonction?
Un appel de fonction est également appelé un appel de sous-routine. Un sous-programme (également appelé procédure, fonction, méthode ou routine) fait partie d'un programme plus vaste chargé de l'exécution d'une tâche spécifique. Le programme plus volumineux peut exécuter une lourde charge de travail et le sous-programme peut exécuter une tâche simple, qui est également indépendante du codage du programme restant. Une fonction est codée de manière à pouvoir être appelée plusieurs fois et à partir de différents endroits (même à l'intérieur d'autres fonctions). Lorsqu’une fonction est appelée, le processeur peut se rendre là où réside le code de la fonction et exécuter les instructions de la fonction une par une. Une fois les fonctions terminées, le processeur revient exactement à l'endroit où il s'était arrêté et poursuit l'exécution à partir de l'instruction suivante. Les fonctions sont un excellent outil pour la réutilisation du code. De nombreux langages de programmation modernes supportent des fonctions. Une collection de fonctions s'appelle une bibliothèque. Les bibliothèques sont souvent utilisées pour partager et échanger des logiciels. Dans certains cas, le programme entier pourrait être une séquence de sous-routines (par exemple, la compilation de code threadé).
Quelle est la différence entre l'appel système et l'appel de fonction?
L'appel système est un appel à un sous-programme intégré au système, tandis qu'un appel de fonction est un appel à un sous-programme du programme. Contrairement aux appels de fonction, les appels système sont utilisés lorsqu'un programme doit exécuter une tâche pour laquelle il ne dispose pas de privilège. Les appels système sont des points d'entrée dans le noyau du système d'exploitation et ne sont pas liés au programme (comme les appels de fonction). Contrairement aux appels système, les appels de fonction sont portables. La surcharge de temps d'un appel système est supérieure à la surcharge d'un appel de fonction car une transition entre le mode utilisateur et le mode noyau doit avoir lieu. Les appels système sont exécutés dans l'espace d'adressage du noyau, tandis que les appels de fonction sont exécutés dans l'espace d'adressage de l'utilisateur.