Que signifient les termes «asynchrone» et «synchrone» en ce qui concerne la définition d'une interruption?

Cité à partir de http://en.wikipedia.org/wiki/Interrupt :

Une interruption est un signal asynchrone indiquant le besoin d'attention ou un événement synchrone dans le logiciel indiquant la nécessité d'une modification de l'exécution.

Je me demandais ce que "asynchrone" et "synchrone" signifient?

Lorsque cet article de Wikipédia mentionne une interruption asynchrone, ils utilisent la définition classique synchronisée vs non synchronisée de (a) synchrone, qui s'applique à un circuit numérique.

Un circuit numérique est dite synchrone lorsque chaque partie de la logique est connectée à une horloge commune (comme dans votre CPU). Lors de la montée ou de la chute de chaque cycle d'horloge, l'état du circuit est mis à jour. Un circuit numérique asynchrone, en revanche, n'est pas synchronisé, mais l'état suivant dépend de celui actuel (et changera le plus tôt possible). La logique de lecture provenant d'autres circuits qui ne partagent pas la même horloge commune peut également être définie comme asynchrone, mais par rapport à l'autre circuit .

Si une interruption asynchrone est déclenchée, cela signifie que le processeur (très probablement au prochain cycle d'horloge) sauvegarde son environnement d'exécution actuel et traite la demande d'interruption. Il s'agit d'un exemple d'interruption matérielle (qui est déclenchée par une connexion externe au processeur). Toutes les interruptions de logiciel, comme mentionné dans l'article, sont techniquement synchrones, puisqu'elles sont initiées par la CPU elle-même – ce qui est un circuit synchrone.

Comme aucun périphérique externe ne partage la même horloge commune que la CPU, toutes les interruptions externes peuvent être considérées comme asynchrones. Même si l'appareil déclenchant l'interruption peut être un circuit synchrone, à partir du point de vue de la CPU , ces interruptions sont déclenchées de manière asynchrone (car il ne partage pas un signal d'horloge commun avec l'appareil).


Le signal d' interruption externe réel lui-même est asynchrone, mais tous les gestionnaires d'interruption de CPU sont synchrones, ils ne détecteront qu'une interruption sur la prochaine horloge , car c'est le point d'un système synchrone (pour ne permettre que l'état du système change ensemble). Si vous êtes curieux de savoir comment un processeur gère les interruptions, consultez cette excellente ressource d'Intel (spécifiquement, volume 3, partie 1).

Du dictionnaire Etymology pour Synchronous ,

1660, "existant ou en cours en même temps"
De LL synchronus "simultané"
De Gk. Synchronos "se produisant en même temps"
De syn – "ensemble" + khronos "temps".
Le sens "récurrent aux mêmes instants successifs du temps" est attesté à partir de 1670

asynchronous signifie "non synchrone".

Maintenant, vous lisez tout cela dans le contexte des interrupts nouveau.

L'interruption asynchrone ne serait pas directement liée à l'activité à portée de main – pensez-le, vous lisez ceci et vous entendez soudain un bruit derrière vous; Vous tournez autour – c'est parce que vous avez été interrompu de manière asynchrone pour le faire :-)

Maintenant, si vous lisez la page wikipedia pour les interruptions, et vous voyez le mot asynchronous , vous le recherchez (comme ci-dessus) – c'est une interruption synchrone dans votre flux de pensée; La cause de cette interruption était ce que vous lisez – en conséquence, vous avez cessé de lire, a regardé le mot et finalement est revenu à la lecture de ceci.

Fondamentalement, c'est une façon d'attirer l'attention du noyau ou d'un programme.

Un exemple: disons que j'ai un programme télécharge un fichier. Je souhaite que mon programme continue de répondre lorsque le fichier est en train de télécharger et je dois dire à mon programme que j'ai terminé. En attendant, mon programme devrait continuer à faire ce qu'il veut, jusqu'à ce qu'il soit ** interrompu ** par l'achèvement d'un fichier téléchargé. Il fait ensuite ce qu'il faut faire. Il est asynchrone car il ne se produira pas à un moment prédéfini ou dans un ordre prédéfini.

Sync signifie que vous vous attendiez à ce que cela se produise ensuite. Async signifie que vous ne saviez pas quand ou si cela se produirait.