Memória Heap e alocação de placas

Estou confuso em relaçãoheap efree list. Eu tenho algumas perguntas e tenho minha própria compreensão de como o malloc funciona em C. Por favor, corrija-me se estiver errado.

A memória de heap é organizada como uma lista encadeada (lista livre) de blocos de dados?Existe uma diferença entre memória de heap e lista livre?

Meu entendimento de alocação de armazenamento (aberto para melhoria): - Quando chamamos malloc, ele aloca memória no heap, e faz isso escolhendo um bloco de dados de tamanho adequado dofree list, certo ?

Quando um determinado bloco de memória é retornado pelo malloc, ele é removido da lista livre e o endereço físico desse bloco de memória é atualizado na tabela de páginas.

Quando a memória está livre usandofree(), o bloco de dados é inserido de volta na lista livre e, possivelmente, para reduzir a fragmentação, em conjunto com o bloco vizinho, e opresent bit na entrada da tabela de páginas está desmarcada.

Portanto, o heap inteiro é uma lista livre (lista encadeada de blocos livres) + blocos de dados alocados.

Essa é uma visão abrangente da alocação de armazenamento?

EDIT: Do desenvolvimento Linux Kernel (Robert Love) capítulo sobre gerenciamento de memória,Alocação de placas

"Uma lista livre contém um bloco de estruturas de dados disponíveis, já alocadas. Quando o código requer uma nova instância de uma estrutura de dados, ele pode pegar uma das estruturas da lista livre em vez de alocar a quantidade suficiente de memória e configurá-la Posteriormente, quando a estrutura de dados não é mais necessária, ela é retornada à lista livre em vez de desalocada. Nesse sentido, a lista livre atua como um cache de objetos, armazenando em cache um tipo de objeto usado com freqüência. "

A lista livre é mencionada como um "bloco de estrutura de dados disponível e alocada".

Como éalocado, quando está em uma lista livre?E como está retornando um bloco de memória para liberar lista _não_ o mesmo que desalocar esse bloco?Como a alocação de placas é diferente da alocação de armazenamento

questionAnswers(3)

yourAnswerToTheQuestion