Changes between Version 10 and Version 11 of AS6-TME-B6


Ignore:
Timestamp:
Mar 26, 2022, 11:05:42 AM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B6

    v10 v11  
    1212  - L'API `list` chaîne des éléments de liste de type `list_t`, structure composée d'un double pointeurs pointant vers d'autres structures `list_t`.
    1313  - Les éléments de liste sont embarqués dans des structures porteuses. Ce sont les éléments de liste qui sont chaînés, mais l'API `list` permet de retrouver le pointeur sur la structure porteuse.
    14   - L'API `list` permet l'ajout et l'extraction d'élément de liste au début, au milieu ou à la fin d'une liste.
     14  - L'API `list` permet l'ajout et l'extraction d'élément de liste au début, au milieu ou à la fin d'une liste. Elle permet aussi l'ajout d'élément en utilisant une relation d'ordre pour obtenir des listes triées.
    1515  - L'API `list` permet le parcours de tous les éléments d'une liste.
    1616- Le code user de l'application (on dira juste application dans la suite) et le noyau ont besoin d'allouer dynamiquement de la mémoire.
     
    3030- L'allocateur de pile pour les threads
    3131  - C'est le plus simple. Il alloue les piles en réservant un segment de taille fixe (`USTACK_SIZE` défini dans `common/usermem.h`) à partir du haut du segment data, tant que cela n'entre pas en collision avec l'allocateur de variables dynamiques.
    32   - Lors de la libération, la pile est mise dans une liste chaînée triée par adresses décroissantes.
     32  - Lors de la libération, la pile est mise dans une liste chaînée triée par adresses décroissantes en utilisant l'API `list`.
    3333  - Lors de l'allocation, la liste de piles libres est consultée en premier, avant de créer une nouvelle pile.
    3434  - Le tri des piles libres permet d'augmenter la probabilité d'usage des piles placées en haut du segment `.data`.
    3535  - Quand une pile est libérée et qu'elle est la plus basse en adresse. Le segment qu'elle occupait est rendu au noyau.
    36 - L'allocateur de variable dynamique pour l'application
     36- L'allocateur de variables dynamiques pour l'application
    3737  - Cet allocateur dispose d'un segment d'adresse libre aligné sur les lignes de caches.
    3838  - L'allocateur gère des blocs.
    3939    - Un bloc est un segment d'adresse aligné sur les lignes de caches.
    40     - Un bloc peut être :
     40    - Un bloc est défini par une taille (en nombre de lignes de cache) et un état vide ou plein
    4141
    4242