Une autre explication : si tu as 128KiB de memoire (virtuelle!), et que tu alloues 4 blocks de 32KiB, tu as la place, et la memoire est repartie ainsi :
Block 0 : 32KiB : indisponible
Block 1 : 32KiB : indisponible
Block 2 : 32KiB : indisponible
Block 3 : 32KiB : indisponible
Maintenant, tu liberes les blocks 1 et 3, donc tu as 64KiB de memoire libre, repartis ainsi :
Block 0 : 32KiB : indisponible
Block 1 : 32KiB : libre
Block 2 : 32KiB : indisponible
Block 3 : 32KiB : libre
Enfin, tu veux allouer un block de 64KiB. He bien ce n'est pas possible, car le plus gros block dispo n'est que de 32KiB. Donc meme si tu as 64KiB de memoire disponible, tu n'as pas 64KiB _contigus_ de disponible, et donc ta memoire est fragmentee!
[^] # Re: Juste une question
Posté par ymorin . En réponse à la dépêche Nouvelle version 2.6.33 du noyau Linux. Évalué à 3.
Block 0 : 32KiB : indisponible
Block 1 : 32KiB : indisponible
Block 2 : 32KiB : indisponible
Block 3 : 32KiB : indisponible
Maintenant, tu liberes les blocks 1 et 3, donc tu as 64KiB de memoire libre, repartis ainsi :
Block 0 : 32KiB : indisponible
Block 1 : 32KiB : libre
Block 2 : 32KiB : indisponible
Block 3 : 32KiB : libre
Enfin, tu veux allouer un block de 64KiB. He bien ce n'est pas possible, car le plus gros block dispo n'est que de 32KiB. Donc meme si tu as 64KiB de memoire disponible, tu n'as pas 64KiB _contigus_ de disponible, et donc ta memoire est fragmentee!
Voila...