Changes between Version 4 and Version 5 of AS6-TME-B6


Ignore:
Timestamp:
Mar 25, 2022, 12:35:20 PM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AS6-TME-B6

    v4 v5  
    88Vous pouvez lire les [htdocs:cours/Archi-2-B6-alloc-2p.pdf slides de cours] pour voir les détails, mais voici le résumé des principes en quelques lignes.
    99
    10 - L'application et le noyau ont besoin d'allouer dynamiquement de la mémoire.
    11 - Chacun dispose d'une segment d'adresse pour ses données partiellement remplis par des variables globales.
    12 - L'idée est d'utiliser cet espace libre pour y mettre des variables dynamiques.
    13 - L'application a en fait 2 besoins d'allocation dynamiques distincts :
    14   1. l'allocation de variables dynamiques et
     10- 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.
     11- L'application et le noyau disposent chacun d'un segment d'adresse propre, nommés respectivement `.data` et `.kdata`, pour leurs données qui ont été partiellement remplis par des variables globales au moment du chargement en mémoire.
     12- L'idée est d'utiliser l'espace libre de ces segments `data` pour y mettre des variables dynamiques.
     13- L'application a en fait 2 besoins distincts d'allocation dynamiques :
     14  1. l'allocation de variables dynamiques de l'application,
    1515  1. l'allocation de piles pour les threads de l'application.
    1616- Les différences entre ces deux types de types d'allocation sont les suivantes :
    17   - Les variables dynamiques sont allouées par le programmes en fonction de ces besoins, les tailles des variables sont quelconques, de quelques octets à plusieurs mégaoctets (tant que c'est possible dans la mémoire disponible).
    18   - Les piles des threads sont certes dans l'espace utilisateur, mais elles sont allouées par le noyau au moment de la création des threads. Leur taille est standard et de taille fixe (dans un vrai système, on peut les choisir leur taille, mais pas pour kO6)
     17  - D'un côté, les variables dynamiques sont allouées par l'application en fonction de ses besoins. La taille des variables est quelconque, allant de quelques octets à plusieurs mégaoctets (tant que c'est possible dans la mémoire disponible).
     18  - D'un autre côté, les piles des threads sont certes dans l'espace utilisateur, mais elles sont allouées par le noyau au moment de la création des threads. Leur taille est standard et fixe (dans un vrai système, on peut les choisir leur taille, mais pas pour kO6).
    1919- Nous avons donc 3 allocateurs dans kO6 :
    2020  - 1 allocateur de piles utilisateurs