Appel système vs interruption
Un processeur typique exécute les instructions une par une. Mais il peut arriver que le processeur doive s’arrêter temporairement et conserver l’instruction en cours et exécuter un autre programme ou 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 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 du contrôle du programme provoquée par des événements matériels externes..
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 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 doit utiliser des appels système..
Qu'est-ce qu'une interruption??
Lors de l'exécution normale d'un programme, il peut arriver que des événements entraînent l'arrêt momentané de la CPU. Des événements comme celui-ci s'appellent des interruptions. Les interruptions peuvent être causées par des défauts logiciels ou matériels. Les interruptions matérielles sont appelées (simplement) des interruptions, alors que les interruptions logicielles sont appelées Exceptions ou Traps. Une fois qu'une interruption (logicielle ou matérielle) est levée, le contrôle est transféré à un sous-programme spécial appelé ISR (Interrupt Service Routine) capable de gérer les conditions généré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 de programme causées par des événements matériels externes. Ici, des moyens externes externes à la CPU. Les interruptions matérielles proviennent généralement d’un grand nombre de sources différentes telles que la minuterie, les périphériques (claviers, souris, etc.), les ports d’E / S (série, parallèle, etc.), les lecteurs de disque, l’horloge CMOS, les cartes d’extension (carte son, carte son). carte, etc). Cela signifie que les interruptions matérielles ne se produisent presque jamais en raison d'un événement lié au programme en cours d'exécution. Par exemple, un événement tel qu'une pression sur une touche du clavier par l'utilisateur, ou une temporisation matérielle interne peut déclencher ce type d'interruption et informer le CPU qu'un certain périphérique requiert une certaine attention. Dans une situation comme celle-ci, la CPU arrêtera ce qu’elle faisait (c’est-à-dire met en pause le programme en cours), fournit le service requis par le périphérique et reviendra au programme normal..
Quelle est la différence entre un appel système et une interruption??
L'appel système est un appel à un sous-programme intégré au système, tandis que l'interruption est un événement qui force le processeur à suspendre temporairement l'exécution en cours. Cependant, une différence majeure réside dans le fait que les appels système sont synchrones, alors que les interruptions ne le sont pas. Cela signifie que les appels système se produisent à une heure fixe (généralement déterminée par le programmeur), mais des interruptions peuvent survenir à tout moment en raison d'un événement imprévu, tel qu'une pression sur une touche du clavier par l'utilisateur. Par conséquent, chaque fois qu'un appel système se produit, le processeur doit seulement se rappeler où retourner, mais en cas d'interruption, le processeur doit se rappeler à la fois de l'endroit où retourner et de l'état du système. Contrairement à un appel système, une interruption n'a généralement rien à voir avec le programme en cours..