Entre appel système et appel fonction
Appel système / Appel de fonction
Un processeur typique exécute les instructions une par une. Mais il peut arriver que le processeur doive arrêter les instructions en cours et exécuter un autre programme ou segment de code (résidant ailleurs). Après cela, le processeur revient à l'exécution normale et continue d'où il s'est 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 lui-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 par lui-même) à partir 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 droits 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 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é appel de sous-programme. Un sous-programme (également connu sous le nom de procédure, de fonction, de méthode ou de routine) fait partie d'un programme plus vaste chargé d'effectuer une tâche spécifique. Le programme plus grand peut exécuter une lourde charge de travail, et le sous-programme peut effectuer simplement une tâche, qui est également indépendante du codage de programme restant. Une fonction est codée de telle sorte 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. Une fois les fonctions terminées, le processeur revient exactement à l'endroit où il s'est arrêté et continue 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 prennent en charge les fonctions. Une collection de fonctions est appelée une bibliothèque. Les bibliothèques sont souvent utilisées comme moyen de partage et de négociation de logiciels. Dans certains cas, l'ensemble du programme pourrait être une séquence de sous-programmes (par exemple, la compilation de code filaire).
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, alors qu'un appel de fonction est un appel à un sous-programme dans le 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 n'a 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. Le temps supplémentaire d'un appel système est supérieur à 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 adresse du noyau, tandis que les appels de fonction sont exécutés dans l'espace adresse de l'utilisateur.