An open API service indexing awesome lists of open source software.

https://github.com/angiebachetarzi/TP_ensimag-malloc


https://github.com/angiebachetarzi/TP_ensimag-malloc

Last synced: over 1 year ago
JSON representation

Awesome Lists containing this project

README

          

* TP Allocateur mémoire: malloc
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 [[https://ensiwiki.ensimag.fr/index.php?title=SEPC-S1][la page SEPC Semestre 1]]

** TP antécédents
- le tp mémoire allocateur physique: first fit, buddy, chainage
- le tp mmap
** Nouveauté par rapport aux TPs précédents
- 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
https://en.wikipedia.org/wiki/Linear_congruential_generator

* Idées d'améliorations
** TODO En faire une bibliothèque dynamique
- capable d'être utilisée à la place du malloc de la bibliothèque C
** TODO Utiliser git bundle au lieu de Cpack
- 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.
** TODO discussion avec Vincent, si il est intéréssé ?