Entre appel système et interruption

Anonim

Appel système contre interruption

Un processeur typique exécute les instructions une par une. Mais il peut arriver que le processeur doive s'arrêter temporairement et maintenir l'instruction en cours et exécuter un autre programme ou segment de code (résidant ailleurs). Après cela, le processeur retourne à l'exécution normale et continue d'où il s'est 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 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 elle-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 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 pour interagir avec d'autres processus, un programme doit utiliser des appels système.

Qu'est-ce qu'une interruption?

Pendant l'exécution normale d'un programme d'ordinateur, des événements peuvent provoquer l'arrêt temporaire du processeur. Les événements comme celui-ci sont appelés interruptions. Les interruptions peuvent être causées par des pannes logicielles ou matérielles. Les interruptions matérielles sont appelées (simplement) Interruptions, tandis que les interruptions logicielles sont appelées Exceptions ou Traps. Une fois qu'une interruption (logiciel ou matériel) est déclenchée, le contrôle est transféré à un sous-programme spécial appelé ISR (Interrupt Service Routine) qui peut gérer les conditions soulevées par l'interruption.

Comme mentionné ci-dessus, le terme Interrupt est généralement réservé aux interruptions matérielles . Il s'agit d'interruptions de contrôle de programme provoquées par des événements matériels externes. Ici, des moyens externes externes à la CPU . Les interruptions matérielles proviennent généralement de différentes sources telles que puce de minuterie, périphériques (claviers, souris, etc.), ports E / S (série, parallèle, etc.), disques durs, horloge CMOS, cartes d'extension carte, 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 pression sur le clavier par l'utilisateur ou un temporisateur interne de temporisation peut déclencher ce type d'interruption et peut informer le processeur qu'un certain périphérique a besoin d'attention. Dans une situation comme celle-ci, le CPU arrête tout ce qu'il faisait (c'est-à-dire interrompt le programme en cours), fournit le service requis par l'appareil et revient au programme normal.

Quelle est la différence entre l'appel système et l'interruption?

L'appel système est un appel à un sous-programme intégré au système, alors que l'interruption est un événement qui fait que le processeur maintient provisoirement l'exécution en cours. Cependant, une différence majeure est 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 programmateur), mais des interruptions peuvent survenir à tout moment en raison d'un événement inattendu tel qu'une pression sur le clavier par l'utilisateur. Par conséquent, chaque fois qu'un appel système se produit, le processeur doit seulement se souvenir de l'endroit où revenir, mais en cas d'interruption, le processeur doit se souvenir 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.