https://github.com/angiebachetarzi/TP_ensimag-malloc
https://github.com/angiebachetarzi/TP_ensimag-malloc
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/angiebachetarzi/TP_ensimag-malloc
- Owner: angiebachetarzi
- License: gpl-3.0
- Created: 2020-01-25T20:24:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-26T15:44:51.000Z (over 6 years ago)
- Last Synced: 2024-11-04T12:39:46.474Z (over 1 year ago)
- Language: C
- Size: 39.1 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - angiebachetarzi/TP_ensimag-malloc - (C)
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é ?