Différence entre l'appel système et l'interruption

Différence entre l'appel système et l'interruption
Différence entre l'appel système et l'interruption

Vidéo: Différence entre l'appel système et l'interruption

Vidéo: Différence entre l'appel système et l'interruption
Vidéo: Les systèmes de fichiers | Édouard Bugnion 2024, Novembre
Anonim

Appel système contre 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 l'instruction en cours et exécuter un autre programme ou segment de code (résidant à un autre endroit). Après cela, le processeur revient à l'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 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 aux programmes exécutés sur l'ordinateur une interface pour communiquer avec le système d'exploitation. Lorsqu'un programme doit demander un service (pour lequel il n'a pas lui-même l'autorisation) au noyau du système d'exploitation, il utilise un appel système. Les processus de niveau 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 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 informatique, des événements peuvent entraîner l'arrêt temporaire du processeur. 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 Traps. Une fois qu'une interruption (logicielle ou matérielle) 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 déclenché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, externe signifie externe au CPU. Les interruptions matérielles proviennent généralement de nombreuses sources différentes telles que la puce de 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, vidéo 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 l'expiration d'un temporisateur matériel interne peut déclencher ce type d'interruption et peut informer le processeur qu'un certain périphérique nécessite une certaine attention. Dans une situation comme celle-là, le processeur arrête tout ce qu'il était en train de faire (c'est-à-dire met en pause le programme en cours), fournit le service requis par l'appareil et revient 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 oblige le processeur à suspendre temporairement 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 programmeur), mais des interruptions peuvent se produire à tout moment en raison d'un événement inattendu 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 n'a qu'à se rappeler où retourner, mais en cas d'interruption, le processeur doit se souvenir à 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.

Conseillé: