Changes between Version 2 and Version 3 of MultiCourseTP10_QR


Ignore:
Timestamp:
Jun 10, 2020, 8:28:46 PM (4 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MultiCourseTP10_QR

    v2 v3  
    33== Q1) Pourquoi le lancement d"une tâche utilisateur sur un coeur nécessite-t-il de charger l'adresse de la première instruction de la tâche dans le registre EPC, et d'exécuter l'instruction assembleur ''eret'' ? ==
    44
    5 Une tâche utilisateur est lancée soit directement par le code de boot (quand elle est la première à s'exécuter sur le coeur), soit par le code système chargé d'effectuer le changement de contexte. Dans les deux cas, le lancement est réalisé par du code système qu'i s'exécute donc en mode kernel :
     5Une tâche utilisateur est lancée soit directement par le code de boot (quand elle est la première à s'exécuter sur le coeur), soit par le code système chargé d'effectuer le changement de contexte. Dans les deux cas, le lancement est réalisé par du code système qui s'exécute donc en mode kernel :
    66* le bit UM du registre SR est à 0  => exécution sans aucune limitation d'accès aux registres protégés ou à la mémoire protégée.
    77* le bit IE du registre SR est à 0 => toutes les interruptions sont masquées.
    8 Le code applicatif doit toujours s'exécuter avec des droits d'accès limités et avec les interruptions non masquées.
    9 Le changement de mode (donc le changement de valeur du registre SR doit se faire exactement au moment du branchement à la première instruction du code application, ni avant, ni après.
    10 Le rôle de l'instruction ''eret''est précisément d'exécuter un branchement (copier la valeur contenue dans le registre EPC dans le registre PC), ET de modifier la valeur du registre SR en une seule instruction.
     8Mais le code applicatif doit toujours s'exécuter avec des droits d'accès limités et avec les interruptions non masquées.
     9Le changement de mode (donc le changement de valeur du registre SR) doit se faire exactement au moment du branchement à la première instruction du code applicatif, ni avant, ni après.
     10Le rôle de l'instruction ''eret''est précisément d'exécuter un branchement (copier la valeur contenue dans le registre EPC dans le registre PC), ET de modifier la valeur du registre SR, en une seule instruction.
    1111
    1212== Q2) En quoi  l’architecture d’un processeur peut affecter le code de certaines fonctions de l'OS comme _task_switch() ? ==