Système d'exploitation et matériel

Pour revenir au programme initial après le traitement d’une interruption ou d’une exception, pourquoi utiliser une instruction de retour dédiée (sret, mret, etc. en RISC-V) plutôt que l’instruction de retour de fonction ordinaire ?

  1. AParce que l’instruction dédiée est plus courte
  2. BPour restaurer, outre l’adresse de retour, le mode et l’état des interruptions
  3. CParce qu’avec l’instruction de retour ordinaire, le gestionnaire ne connaît pas l’adresse de retour
Afficher la réponse et l'explication

Réponse : B. Pour restaurer, outre l’adresse de retour, le mode et l’état des interruptions

Lorsqu’une exception ou une interruption survient, le CPU sauvegarde dans des registres dédiés l’adresse de retour ainsi que le mode de fonctionnement antérieur et l’état d’autorisation des interruptions, puis entre en mode privilégié. Au retour, il doit restaurer simultanément ces éléments et redescendre en mode utilisateur avant de reprendre l’instruction initiale, faute de quoi l’exécution risquerait de se poursuivre en mode privilégié. L’instruction de retour dédiée effectue cela de façon indivisible en une seule instruction. Ce n’est pas une question de longueur d’instruction, et l’adresse de retour est connue grâce au registre sauvegardé.

S'entraîner sur ce thème Retour au thème

Autres questions sur Système d'exploitation et matériel

  1. Dans un système exigeant un comportement temps réel, quel facteur est le plus susceptible d’allonger le délai entre l’apparition d’une interruption et le démarrage du gestionnaire (latence d’interruption) ?
  2. Quelle description de la NMI (interruption non masquable) est correcte ?
  3. Dans un système multicœur, lorsque l’OS modifie l’entrée de table des pages d’une page pour supprimer sa correspondance, quel traitement est nécessaire ?
  4. Que se passe-t-il en général lorsqu’un programme accède à une adresse que l’OS ne lui a pas allouée ?
  5. Avec un mécanisme qui associe un fichier à la mémoire (comme mmap), que se passe-t-il lors de la lecture du contenu du fichier ?

Comparatifs sur ce thème