lista livre - Free list

A lista livre é uma estrutura de dados usado em um esquema de alocação de memória dinâmica . Ela opera através da ligação regiões não afectados da memória juntos em uma lista ligada , utilizando a primeira palavra de cada região não alocado como um ponteiro para o próximo. É o mais apropriado para a alocação de um pool de memória , onde todos os objetos têm o mesmo tamanho.

listas livres fazer a alocação e desalocação de operações muito simples. Para liberar uma região, seria apenas um link para a lista livre. Para alocar uma região, pode-se simplesmente remover uma única região a partir do final da lista livre e usá-lo. Se as regiões são de tamanho variável, um pode ter que procurar uma região de tamanho grande o suficiente, o que pode ser caro.

Listas livres têm a desvantagem, herdada de listas ligadas, de má localidade de referência e tão pobre cache de dados de utilização, e eles não consolidar automaticamente regiões adjacentes para atender às solicitações de alocação para grandes regiões, ao contrário do sistema de alocação amigo . No entanto, eles ainda são úteis em uma variedade de aplicações simples onde um alocador de memória full-blown é desnecessário ou requer muita sobrecarga.

Veja também

Referências