wiki:AS6-TME-B2

Version 11 (modified by franck, 3 years ago) (diff)

--

Gestion des interruptions

Questions de cours

Les questions de cette partie ont pour objectif de vérifier que vous avez compris le cours. Les réponses sont donc dans les slides du cours sur les interruptions. L'ordre des questions suit globalement celui des slides du cours. Il y a beaucoup de questions, mais la plupart sont simples, certaines sont plus délicates. Ce n'est pas grave, si vous ne savez pas tout, mais vous devriez être en mesure de répondre à un grand nombre.

  1. À quoi servent les interruptions ?
  2. Une interruption en informatique est à la fois une suspension temporaire d'un programme et un signal électrique. Comment s'appelle le signal d'interruption et comment s'appelle le code permettant de la traiter ?
  3. Quel état peut prendre un signal d'interruption ?
  4. Quel type de composant émet un signal d'interruption ?
  5. Est-ce que tous les composants génèrent des signaux d'interruption ? Si la réponse est non, donnez un exemple ?
  6. Est-ce qu'un composant peut produire plusieurs signaux d'interruption ?
  7. À qui est destiné un signal d'interruption ?
  8. Est-ce qu'une application utilisateur sait quand elle va être interrompue ?
  9. Est-ce qu'une application utilisateur sait quand elle a été interrompue ?
  10. Que signifie IPI et à quoi ça sert ?
  11. Est-ce qu'un programme utilisateur peut interdire les interruptions en général ?
  12. Est-ce que le noyau du système d'exploitation peut interdire les interruptions en général ?
  13. Qui exécute le code de traitement du signal d'interruption ?
  14. Quand un signal d'interruption s'active est ce que le noyau sait toujours quoi faire ?
  15. Que signifie acquitter un signal d'interruption ? (on dit aussi acquitter un interruption)
  16. Comment fait-on pour acquitter une interruption ?
  17. Que signifie l'expression «vol de cycles» ?
  18. Est-ce l'application qui a provoqué l'activation d'un signal d'interruption qui est volée ?
  19. Pour le composant TTY, à quel moment produit-il un signal d'interruption ?
  20. Pour le composant TTY, comment fait-on pour acquitter une d'interruption ?
  21. Si plusieurs caractères ASCII sont en attente dans d'être lus dans un TTY, quelle conséquence cela a-t-il sur le signal d'interruption ?
  22. À quoi sert le composant TIMER ?
  23. Comment fait-on pour le configurer ?
  24. Comment fait-on pour acquitter une interruption pour le composant TIMER ?
  25. Est-ce que le registre TIMER_VALUE peut activer (on dit aussi lever) un signal d'interruption ?
  26. Que signifie ICU et à quoi cela sert-il ?
  27. Que signifie masquer une interruption ?
  28. Dans l'ICU, que contient le registre ICU_INT ?
  29. Dans l'ICU, que contient le registre ICU_MASK ?
  30. Dans l'ICU, comment fait-on pour modifier la valeur de ICU_MASK ?
  31. Dans l'ICU, que contient le registre ICU_VECTOR ?
  32. Dans l'ICU, il y a autant de jeu de registres que de processeur, pourquoi ?
  33. Qu'est-ce que la fonction kinit() ?
  34. Que contient le vecteur d'interruption ?
  35. À quel moment doit-on initialiser le vecteur d'interruption ?
  36. En quoi consiste la liaison des interruptions (interrupt binding en anglais) ?
  37. À quelle adresse saute-t-on lorsqu'un signal interruption s'active et qui n'est pas masqué ?
  38. Expliquer le rôle des bits UM, EXL et IE du registre C0_SR.
  39. Comment le noyau sait-il que la cause de son invocation est une interruption ?
  40. Quel est le rôle du gestionnaire d'interruption ?
  41. Quelle instruction permet de sortir du noyau pour revenir dans le code interrompu ? et que fait-elle précisément ?
  42. Rappeler la différence entre un registre temporaire et un registre persistant.
  43. Dans le gestionnaire d'interruption, on sauve les registres temporaires seulement avant d'appeler la fonction de traitement d'un signal d'interruption ?

Travaux pratiques

En travaux... pour vous dire que je ne suis pas en avance... :-)