next up previous
suivant: Ce qu'il faut faire monter: Quelques définitions précédent: Fragmentation de la mémoire

Solution possible à ce problème

Afin de résoudre le problème de la fragmentation interne, il est possible de réaliser une stratégie fusion / division des blocs mémoires. Ainsi, si le bloc mémoire est plus large que la place strictement nécessaire à l'objet à stocker, l'allocateur va alors diviser le bloc mémoire. On obtient ainsi d'un côté le bloc de taille exactement égal à la taille de l'objet à stocker et de l'autre le bloc reste. A la libération, du bloc contenant l'objet, l'allocateur devra déterminer si le bloc reste est encore libre ou non afin de reconstituer le bloc mémoire initial.

Cette solution permet de résoudre le problème de fragmentation interne mais peut aggraver la fragmentation externe. Afin de limiter celle-ci, il peut-être intéressant de considérer la division d'un bloc seulement si le bloc reste atteint une certaine taille. Cette taille doit permettre l'utilisation du bloc afin de satisfaire des demandes mémoires par les programmes utilisateurs (par exemple on peut considérer cette limite comme étant la moyenne des blocs précédemment demandés).



Gautier Loyaute 2006-03-01