|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Étudiant Inscription : novembre 2011 Messages : 39 ![]() |
Bonjour a tous,
Dans le cadre d'un projet, je dois recoder le malloc en langage C Je cherche un algo rapide et simple a implementer, avez vous une idee ? |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Yankel ScialomIngénieur en systèmes embarqués Inscription : juin 2004 Messages : 812 ![]() |
Bonjour, j'ai une solution simple :
Chaque allocation sera, en interne, représentée par un bloc en-tête et un bloc données, tous deux adjacents. L'en-tête, de taille fixe, contient la taille du bloc de données, l'état du bloc (libre ou réservé), l'adresse (relative) du bloc en-tête précédent et celle du bloc suivant. Ainsi, le gestionnaire de mémoire n'a que peu d'opérations à faire :
N'hésite pas à partager ton gestionnaire de mémoire une fois cela fait. Si tu as accès à un compilateur C++, tu peux aussi l'encapsuler dans la classe std::Alocator qui permet de gérer la mémoire interne des std::vector, std::map, etc. Cdlt,
__________________
gasp in touch -- Yankel Scialom |
|
|
10
|
|
|
#3 |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 418 ![]() |
Des algos il y en a plein.
Je conseille de lire le document "Dynamic memory allocation" de 'Alan L. Cox' pour se faire une idée sur l'implémentation d'un allocateur utilisant les free-list. Sinon, pour la beauté de l'algorithme, je conseille la technique de "Buddy memory allocation".
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
10
|
|
|
#4 |
|
Futur Membre du Club
![]() Étudiant Inscription : novembre 2011 Messages : 39 ![]() |
Merci !
je n'ai le droit que d'utiliser brk et sbrk, pensez vous que le first fit est une bonne solution ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com