Bonsoir,
Comment dire ... je suis désespéré !
Je suis étudiant dans une école d'informatique qui a la folie de nous faire recorder le malloc.
Seul contrainte n'utiliser que brk et sbrk et getpagesize.
Avec mon binôme on est partie sur l’idée de faire une sorte de graphe je m'explique.
On fait deux liste chaînée, une liste chaînée de page et une liste chaînée dans la page pour les segments.
la taille de la page est calcule par rapport a la taille que l'on peut allouer c'est a dire que si on veut allouer 200 octet on cree une page de 4096 octet parce que sur notre système getpagesize renvoi 4096.
Et dans une page on a une liste chaînée de x segment.
En gros ça donne :
Page ---> Page ---> Page ---> Page ---> Page ---> Page ---> Page ---> Page ---> NULL
|
|
SEG
|
|
SEG
|
|
SEG
|
|
SEG
|
|
NULL
Sans rentrer dans le détail du code ça fonctionne très bien a une seul exception, c'est ultra ultra lent.
On c'est débrouillé pour ne faire que un sbrk par création de page, on ne fait que un seul sizeof dans tous le programme qu'on garde en mémoire.
On limite au maximum le nombre de boucle etc...
En gros on est arrive au maximum de l'optimisation que notre niveaux de C nous permet donc je fais appel a vous pour réfléchir a un nouveau procédé que celui que j'appelle "un graphe" pour recoder le malloc.
J’espère avoir été suffisamment claire dans mon explication je suis prêt a clarifier ce qui ne le serait pas.
Cordialement.
PS : si je n'ai pas posté au bon endroit, j'en suis désolé.
Partager