Qu'est-ce qu'une liste gratuite?

Une liste gratuite est une structure de données qui contient les adresses des emplacements de mémoire de l'ordinateur qui sont disponibles pour une utilisation par un programme en cours d'exécution lorsque vous utilisez une allocation de mémoire dynamique. La liste devient nécessaire lorsqu'un programme doit allouer un espace à partir d'une zone de mémoire libre appelée le tas. L'implémentation d'une liste gratuite peut être une liste simple liée ou peut être une structure de données plus complexe telle que le besoin de la liste de gestion de la gestion informatique de haut niveau.

Lorsqu'un programme a besoin d'espace pour stocker des informations pendant l'exécution du programme, il doit demander une quantité spécifique de mémoire du système d'exploitation sous-jacent. Les emplacements des blocs de mémoire qui peuvent être utilisés sont stockés dans la liste gratuite. Pour que l'allocation réussisse, la quantité de mémoire demandée doit être disponible dans un ou plusieurs de ces blocs. Lorsqu'un pointeur vers une mémoire appropriéeL'emplacement est renvoyé, cet élément de la liste est supprimé.

Une fois un programme terminé à l'aide de la mémoire, il peut le désallocation.

La forme la plus simple de la gestion de la mémoire est appelée le premier système d'ajustement. Ce système maintient une seule liste d'emplacements de mémoire libre. Lorsqu'une demande de mémoire est envoyée, la liste est traversée et le premier bloc suffisamment grand est retourné. Si le bloc est plus de deux fois la taille demandée, puis il est réduit par moiVing Fragmented Memory Zone qui pourrait ne jamais être retourné à la liste.

Une forme différente de gestion de la mémoire s'appelle le système d'allocation Buddy. Contrairement au premier système d'ajustement, l'allocation Buddy conserve plusieurs listes gratuites, chacune tenant des blocs ouverts d'une seule taille particulière. Cela signifie que lorsqu'une demande d'allocation est reçue, la liste qui contient des blocs qui ne sont que de la taille de la taille de la taille ne sont pas plus importants. exigences.

Le terme "liste gratuite" peut se référer à une seule liste liée d'adresses de mémoire, ou elle peut se référer à un type de structure de données beaucoup plus complexe. Différents types d'arbres en nature, s'ils sont maintenus simples et équilibrés, peuvent aider à augmenter la vitesse de recherche de blocs de mémoire ouverts à la fin de la complication du code source. Une liste liée peut être plus lente qu'à une spécificationAlized Tri Tree mais crée du code de programmation qui est beaucoup plus facile à lire, à déboguer et à modifier.

Certains langages de programmation et systèmes d'exploitation utilisent un mécanisme spécial appelé Collection Garbage. Il s'agit d'un processus qui peut aider à prendre les différentes entrées sur une liste gratuite et à consolider les espaces libres afin qu'ils soient contigus. Cela a pour effet de prévenir la fragmentation et de permettre aux blocs de mémoire de plus grands.

DANS D'AUTRES LANGUES