Changes between Version 24 and Version 25 of AS6-TME-B2


Ignore:
Timestamp:
Feb 16, 2022, 12:11:22 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B2

    v24 v25  
    5959
    6060
     611. À quoi servent les interruptions ?
     62{{{#!protected ------------------------------------------------------------------------------------
     63''
     64* Les interruptions sont un mécanisme permettant de traiter au plus vite un événement matériel ou une demande d'un autre processeur.
     65''
     66}}}
     671. 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 ?
     68{{{#!protected ------------------------------------------------------------------------------------
     69''
     70* Le signal d'interruption se nomme IRQ comme Interrupt ReQuest.
     71* Le code pour traiter une IRQ est une ISR comme Interrupt Service Routine
     72''
     73}}}
     741. Est-ce que tous les composants génèrent des signaux d'interruption ? Si la réponse est non, donnez un exemple ?
     75{{{#!protected ------------------------------------------------------------------------------------
     76''
     77* Non, les mémoire ne produisent pas d'interruption et, ici, le ''frame buffer'' (la mémoire vidéo) non plus.
     78''
     79}}}
     801. Est-ce qu'un composant peut produire plusieurs signaux d'interruption ?
     81{{{#!protected ------------------------------------------------------------------------------------
     82''
     83* Oui, le TTY gère plusieurs terminaux, donc plusieurs clavier, et chacun produit une IRQ.
     84''
     85}}}
     861. Est-ce qu'une application utilisateur sait quand elle va être interrompue ?
     87{{{#!protected ------------------------------------------------------------------------------------
     88''
     89* Non, elle sera interrompue, mais elle ne peut pas savoir quand.
     90''
     91}}}
     921. Est-ce qu'une application utilisateur sait quand elle a été interrompue ?
     93{{{#!protected ------------------------------------------------------------------------------------
     94''
     95* Non plus, le noyau lui a volé du temps d'exécution, mais elle ne sait pas quand...
     96''
     97}}}
     981. Que signifie IPI et à quoi ça sert ? (il n'y a pas de slides dans le cours sur ça...)
     99{{{#!protected ------------------------------------------------------------------------------------
     100''
     101* IPI signifie Inter-Processor Interrupt, c'est un mécanisme permettant à un programme d'interrompre un autre programme s'exécutant sur un autre processeur. Il faut un composant matériel spécifique contenant des registres dont l'écriture provoque des IRQ.
     102''
     103}}}
     1041. Est-ce qu'un programme utilisateur peut interdire les interruptions en général ?
     105{{{#!protected ------------------------------------------------------------------------------------
     106''
     107* Non, il faudrait écrire dans un registre de l'ICU ou dans le registre `c0_sr` qui appartiennent au noyau.
     108''
     109}}}
     1101. Est-ce que le noyau du système d'exploitation peut interdire les interruptions en général ?
     111{{{#!protected ------------------------------------------------------------------------------------
     112''
     113* Oui, bien sûr, il le fait soit définitivement quand un périphérique n'est pas utilisé, ou temporairement pour les sections critiques.
     114''
     115}}}
     1161. Quand un signal d'interruption s'active est ce que le noyau sait toujours quoi faire ?
     117{{{#!protected ------------------------------------------------------------------------------------
     118''
     119* Oui, c'est défini par le vecteur d'interruption, à chaque IRQ, il y a une ISR.
     120''
     121}}}
     1221. Que signifie l'expression «vol de cycles» ?
     123{{{#!protected ------------------------------------------------------------------------------------
     124''
     125* C'est une expression pour dire que l'application en cours a été interrompu le noyau pour exécuter une ISR.
     126''
     127}}}
     1281. Est-ce l'application qui a provoqué l'activation d'un signal d'interruption qui est volée ?
     129{{{#!protected ------------------------------------------------------------------------------------
     130''
     131* Non, s'il y a plusieurs applications en cours s'exécutant en temps partagé (on le verra au prochain cours), les IRQs
     132''
     133}}}
     1341. Pour le composant TTY, à quel moment produit-il un signal d'interruption ?
     1351. Pour le composant TTY, comment fait-on pour acquitter une d'interruption ?
     1361. 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 ?
     1371. À quoi sert le composant `TIMER` ?
     1381. Comment fait-on pour le configurer ?
     1391. Comment fait-on pour acquitter une interruption pour le composant TIMER ?
     1401. Est-ce que le registre `TIMER_VALUE` peut activer (on dit aussi lever) un signal d'interruption ?
     1411. À quel moment doit-on initialiser le vecteur d'interruption ?
     1421. En quoi consiste la liaison des interruptions (''interrupt binding'' en anglais) ?
     1431. Expliquer le rôle des bits `UM`, `EXL` et `IE` du registre `C0_SR`.
     1441. Comment le noyau sait-il que la cause de son invocation est une interruption ?
     1451. Quelle instruction permet de sortir du noyau pour revenir dans le code interrompu ? et que fait-elle précisément ?
     1461. Rappeler la différence entre un registre temporaire et un registre persistant.
     1471. Pour qu'une IRQ soit effectivement prise en compte, il faut que le périphérique la lève et qu'elle ne soit pas masquée. Il y a plusieurs endroits où on peut masquer une IRQ, lesquels ?
    611481. À quelles adresses dans l'espace d'adressage sont placés les registres des 3 contrôleurs de périphériques de la plateforme et comment le kernel les connaît ?
    62149{{{#!protected ------------------------------------------------------------------------------------
     
    330417''
    331418}}}
    332 == Questions de cours
    333 
    334 
    335 Les questions de cette partie ont pour objectif de vérifier que vous avez compris le cours.
    336 Les réponses sont donc dans les [htdocs:cours/AS6-3.pdf slides du cours sur les interruptions].
    337 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.
    338 
    339 1. À quoi servent les interruptions ?
    340 {{{#!protected ------------------------------------------------------------------------------------
    341 '''''''''''''''
    342 * Les interruptions sont un mécanisme permettant de traiter au plus vite un événement matériel ou une demande d'un autre processeur.
    343 '''''''''''''''
    344 }}}
    345 1. 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 ?
    346 1. Quel état peut prendre un signal d'interruption ?
    347 1. Quel type de composant émet un signal d'interruption ?
    348 1. Est-ce que tous les composants génèrent des signaux d'interruption ? Si la réponse est non, donnez un exemple ?
    349 1. Est-ce qu'un composant peut produire plusieurs signaux d'interruption ?
    350 1. À qui est destiné un signal d'interruption ?
    351 1. Est-ce qu'une application utilisateur sait quand elle va être interrompue ?
    352 1. Est-ce qu'une application utilisateur sait quand elle a été interrompue ?
    353 1. Que signifie IPI et à quoi ça sert ?
    354 1. Est-ce qu'un programme utilisateur peut interdire les interruptions en général ?
    355 1. Est-ce que le noyau du système d'exploitation peut interdire les interruptions en général ?
    356 1. Qui exécute le code de traitement du signal d'interruption ?
    357 1. Quand un signal d'interruption s'active est ce que le noyau sait toujours quoi faire ?
    358 1. Que signifie acquitter un signal d'interruption ? (on dit aussi acquitter une interruption)
    359 1. Comment fait-on pour acquitter une interruption ?
    360 1. Que signifie l'expression «vol de cycles» ?
    361 1. Est-ce l'application qui a provoqué l'activation d'un signal d'interruption qui est volée ?
    362 1. Pour le composant TTY, à quel moment produit-il un signal d'interruption ?
    363 1. Pour le composant TTY, comment fait-on pour acquitter une d'interruption ?
    364 1. 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 ?
    365 1. À quoi sert le composant `TIMER` ?
    366 1. Comment fait-on pour le configurer ?
    367 1. Comment fait-on pour acquitter une interruption pour le composant TIMER ?
    368 1. Est-ce que le registre `TIMER_VALUE` peut activer (on dit aussi lever) un signal d'interruption ?
    369 1. Que signifie ICU et à quoi cela sert-il ?
    370 1. Que signifie masquer une interruption ?
    371 1. Dans l'ICU, que contient le registre `ICU_STATE` ?
    372 1. Dans l'ICU, que contient le registre `ICU_MASK` ?
    373 1. Dans l'ICU, comment fait-on pour modifier la valeur de `ICU_MASK` ?
    374 1. Dans l'ICU, que contient le registre `ICU_HIGHEST` ?
    375 1. Dans l'ICU, il y a autant de jeu de registres que de processeur, pourquoi ?
    376 1. Qu'est-ce que la fonction `kinit()` ?
    377 1. Que contient le vecteur d'interruption ?
    378 1. À quel moment doit-on initialiser le vecteur d'interruption ?
    379 1. En quoi consiste la liaison des interruptions (''interrupt binding'' en anglais) ?
    380 1. À quelle adresse saute-t-on lorsqu'un signal interruption s'active et qui n'est pas masqué ?
    381 1. Expliquer le rôle des bits `UM`, `EXL` et `IE` du registre `C0_SR`.
    382 1. Comment le noyau sait-il que la cause de son invocation est une interruption ?
    383 1. Quel est le rôle du gestionnaire d'interruption ?
    384 1. Quelle instruction permet de sortir du noyau pour revenir dans le code interrompu ? et que fait-elle précisément ?
    385 1. Rappeler la différence entre un registre temporaire et un registre persistant.
    386 1. Dans le gestionnaire d'interruption, on sauve les registres temporaires seulement avant d'appeler la fonction de traitement d'un signal d'interruption ?
    387 1. Pour qu'une IRQ soit effectivement prise en compte, il faut que le périphérique la lève et qu'elle ne soit pas masquée. Il y a plusieurs endroits où on peut masquer une IRQ, lesquels ?
     419
    388420
    389421
     
    520552}
    521553}}}
    522 
    523 }}}
    524 }}}