Ce squelette permet d’implanter un allocateur mémoire virtuelle. Le sujet de TP expliquant le travail est diponible sur http://ensiwiki.ensimag.fr dans la page SEPC Semestre 1
- le tp mémoire allocateur physique: first fit, buddy, chainage
- le tp mmap
- allocateur virtuelle en trois tailles, plus progressif.
- une arena par thread
- croissance de l’arena par thread en utilisant mmap et une
structure
_Thread_local
- récursive doubling pour l’allocation des chunk et du pool principal
- très gros (plus 128ko): mmap en direct
- très petit pour alloc de moins de 64o, par chunk de 96o
- buddy pour le pool principal
- marquage des blocs (avant après) pour avoir sa vrai taille
- un magic entier
- utiliser LCG MMIX de Knuth (64 bits) pour générer la valeur magique à partir de l’addresse utilisée
- un magic entier
https://en.wikipedia.org/wiki/Linear_congruential_generator
- capable d’être utilisée à la place du malloc de la bibliothèque C
- Rendu complet, compact et avec toutes les informations de contributions.
- Risque de rendu vide accru, si les étudiants n’arrivent pas à faire un commit
- peut-être plus difficile pour les Phelma qui doivent apprendre git en plus pour pouvoir rendre quelque chose ? C’est peut-être le bon TP pour commencer.