Appel système vs interruption
Un processeur typique exécute les instructions une par une. Mais il peut y avoir des occasions où le processeur doit s'arrêter temporairement et maintenir 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 une interruption sont de telles occasions. Un appel système est un appel à un sous-programme intégré au système. Une interruption est une interruption de contrôle de programme causée par des événements matériels externes.
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 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 E / S externe ou pour interagir avec d'autres processus, un programme doit utiliser les appels système.
Qu'est-ce qu'une interruption?
Lors de l'exécution normale d'un programme informatique, il pourrait y avoir des événements qui peuvent entraîner l'arrêt temporairement du CPU. Des événements comme celui-ci sont appelés interruptions. Les interruptions peuvent être causées par des défauts logiciels ou matériels. Les interruptions matérielles sont appelées (simplement) interruptions, tandis que les interruptions logicielles sont appelées exceptions ou pièges. Une fois qu'une interruption (logiciel ou matériel) est augmentée, le contrôle est transféré vers un sous-programme spécial appelé ISR (routine de service d'interruption) qui peut gérer les conditions qui sont soulevées par l'interruption.
Comme mentionné ci-dessus, le terme interruption est généralement réservé aux interruptions matérielles. Ce sont des interruptions de contrôle du programme causées par des événements matériels externes. Ici, des moyens externes externes au CPU. Les interruptions matérielles proviennent généralement de nombreuses sources différentes telles que la puce de minuterie, les appareils périphériques (claviers, souris, etc.), Ports d'E / S (série, parallèle, etc.), entraînements de disque, horloge CMOS, cartes d'extension (carte son, carte vidéo, etc.). Cela signifie que les interruptions matérielles ne se produisent presque jamais en raison d'un événement lié au programme d'exécution. Par exemple, un événement comme une touche appuyant sur le clavier par l'utilisateur, ou une synchronisation interne de chronomètre peut soulever ce type d'interruption et peut informer le processeur qu'un certain appareil a besoin. Dans une situation comme celle-là, le processeur arrêtera tout ce qu'il faisait (je.e. Utilise le programme actuel), fournit le service requis par l'appareil et reviendra au programme normal.
Quelle est la différence entre l'appel système et l'interruption?
L'appel du système est un appel à un sous-programme intégré au système, tandis que l'interruption est un événement, ce qui fait que le processeur maintient temporairement l'exécution actuelle. Cependant, une différence majeure est que les appels système sont synchrones, alors que les interruptions ne sont pas. Cela signifie que les appels système se produisent à un temps fixe (généralement déterminé par le programmeur), mais les interruptions peuvent se produire à tout moment en raison d'un événement inattendu tel qu'une appuye sur la touche sur le clavier par l'utilisateur. Par conséquent, chaque fois qu'un appel système se produit, le processeur ne doit se rappeler que où revenir, mais en cas d'interruption, le processeur doit se souvenir à la fois de l'endroit où revenir et de l'état du système. Contrairement à un appel système, une interruption n'a généralement rien à voir avec le programme actuel.