Appel système vs appel de fonction
Un processeur typique exécute les instructions une par une. Mais il peut y avoir des occasions où le processeur doit arrêter les instructions actuelles et exécuter un autre programme ou segment de code (résidant dans un autre endroit). Après cela, le processeur revient à une exécution normale et continue d'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 au sein du programme lui-même.
Qu'est-ce qu'un appel système?
Les appels système fournissent des programmes exécutés sur l'ordinateur une interface pour parler avec le système d'exploitation. Lorsqu'un programme doit demander un service (pour lequel il n'a pas la permission de le faire par lui-même) du noyau du système d'exploitation, il utilise un appel système. Les processus au niveau de l'utilisateur n'ont pas les mêmes autorisations que les processus interagissant directement avec le système d'exploitation. Par exemple, pour communiquer avec un appareil d'E / S externe ou pour interagir avec d'autres processus, un programme utilise des appels système.
Qu'est-ce qu'un appel de fonction?
Un appel de fonction est également appelé un appel de sous-programme. Un sous-programme (également connu sous le nom de procédure, fonction, méthode ou routine) fait partie d'un programme plus vaste responsable de l'exécution d'une tâche spécifique. Le programme plus grand peut exécuter une charge de travail lourde, et le sous-programme peut effectuer une tâche simple, qui est également indépendante du codage du programme restant. Une fonction est codée de telle manière qu'elle peut être appelée plusieurs fois et à partir de différents endroits (même à partir d'autres fonctions). Lorsqu'une fonction est appelée, le processeur peut aller à l'endroit où réside le code de la fonction et exécuter les instructions de la fonction une par une. Après avoir rempli les fonctions, le processeur reviendra exactement où il s'était arrêté et continuera 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 de soutien aux fonctions de support. Une collection de fonctions est appelée une bibliothèque. Les bibliothèques sont souvent utilisées comme moyen de partage et de trading des logiciels. Dans certains cas, l'ensemble du programme pourrait être une séquence de sous-programmes (e.g. compilation de code fileté).
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 effectuer une tâche, pour laquelle il n'a pas de privilège pour. 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, les appels système, les appels de fonction sont portables. Les frais généraux de temps d'un appel système sont plus que les frais généraux pour un appel de fonction car une transition entre le mode utilisateur et le mode du noyau doit avoir lieu. Les appels système sont exécutés dans l'espace d'adresse du noyau, tandis que les appels de fonction sont exécutés dans l'espace d'adresse utilisateur.