wiki:AS6-TME-B6

Version 4 (modified by franck, 3 years ago) (diff)

--

Allocation dynamique de mémoire

Vous pouvez lire les slides de cours pour voir les détails, mais voici le résumé des principes en quelques lignes.

  • L'application et le noyau ont besoin d'allouer dynamiquement de la mémoire.
  • Chacun dispose d'une segment d'adresse pour ses données partiellement remplis par des variables globales.
  • L'idée est d'utiliser cet espace libre pour y mettre des variables dynamiques.
  • L'application a en fait 2 besoins d'allocation dynamiques distincts :
    1. l'allocation de variables dynamiques et
    2. l'allocation de piles pour les threads de l'application.
  • Les différences entre ces deux types de types d'allocation sont les suivantes :
    • 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).
    • 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)
  • Nous avons donc 3 allocateurs dans kO6 :
    • 1 allocateur de piles utilisateurs
    • 1 allocateur de variables dynamiques pour l'application
    • 1 allocateur de variables dynamiques pour le noyau

(pas fini)

A. Questions de cours

La majorité des réponses aux questions sont dans le cours ou dans le rappel du cours donné au début de cette page, c'est voulu. Les questions suivent à peu près l'ordre du cours, elles sont simples, mais vous avez besoin de comprendre le cours pour y répondre :-) Quand une question vous demande si quelque chose est vrai ou faux, ne répondez pas juste "oui" ou "non », mais justifiez vos réponses avec une petite phrase. Le but de ces questions est d'évaluer vos connaissances, donc plus vous êtes précis, mieux c'est.

B. Travaux pratiques