Si le processeur demande quelque chose à un périphérique et que celui-ci n'est pas prêt, le processeur entre généralement dans un état d'attente. Cela signifie que le processeur cessera d'exécuter les instructions jusqu'à ce que l'appareil soit prêt. Le temps d'attente du processeur dépend de l'appareil. Certains appareils peuvent être prêts en quelques cycles d'horloge, tandis que d'autres peuvent prendre plusieurs millisecondes, voire quelques secondes.
Dans certains cas, le processeur peut continuer à exécuter des instructions en attendant le périphérique. C’est ce qu’on appelle une exécution dans le désordre. Une exécution dans le désordre peut améliorer les performances en permettant au processeur de garder toutes ses unités d'exécution occupées. Cependant, une exécution dans le désordre peut également rendre plus difficile le débogage des programmes.
Si l'appareil n'est pas prêt dans un délai raisonnable, le processeur peut générer une interruption. Cela amènera le processeur à arrêter d’exécuter les instructions et à passer à un gestionnaire d’interruption. Le gestionnaire d'interruption peut alors prendre les mesures appropriées pour gérer le périphérique qui n'est pas prêt.
Voici un exemple de ce qui pourrait arriver si le processeur demande quelque chose à un périphérique et que celui-ci n'est pas prêt :
1. Le processeur demande des données à un disque dur.
2. Le disque dur n'est pas prêt à fournir les données.
3. Le processeur entre dans un état d'attente.
4. Le disque dur est prêt.
5. Le processeur reprend l'exécution des instructions.
Dans cet exemple, le processeur entre dans un état d'attente pendant une courte période pendant que le disque dur devient prêt. Cela n’affecte pas de manière significative les performances du programme. Cependant, si le disque dur mettait beaucoup de temps à être prêt, le processeur serait obligé d'attendre pendant une période prolongée. Cela pourrait affecter considérablement les performances du programme.
|