Changes between Version 40 and Version 41 of AS6-TME-B6


Ignore:
Timestamp:
Mar 29, 2022, 4:36:21 PM (2 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B6

    v40 v41  
    242242{{{#!protected ------------------------------------------------------------------
    243243'''
    244  * La pile allouée dans la section `.data` sert aux contextes d'exécution des fonctions de thread.
    245  * La pile
     244 * Il y a deux piles par thread :
     245   1. La pile allouée dans la section `.data` sert aux contextes d'exécution des fonctions du thread quand le processeur est en mode user. Sa taille est `USTACK_SIZE`, c'est une variable de configuration du noyau définie dans `common/usermem.h` à 16 pages (64ko).
     246   2. La pile allouée dans la structure `kthread_t` dans la section `.kdata` (dans le `kheap`, c'est le plus gros objet que l'allocateur slab peut allouer). Elle sert aux contextes d'exécution des fonctions du thread quand le processeur est en mode kernel. Sa taille est 4kO moins la place prise par les champs de la structure décrivant le thread et la table de sauvegarde du contexte du thread.
     247 * On bascule de l'une à l'autre quand on entre dans le noyau.
     248 * L'intérêt d'avoir deux piles.
     249   * C'est que l'utilisateur ne peut pas découvrir ce que le noyau a fait en observant la pile.
     250   * Quand on entre dans le noyau on a toujours une pile vide (pas grande, mais suffisante), on a moins de risque de débordement.
    246251'''
    247252}}}