article
13. Gerenciamento de Espaco Livre
Esse documento representa parte dos meus estudos acerca do Livro - Operational Systems Three Easy Pieces, de dominio publico.
Splitting and coalescing(merging)
assumimos uma lista com os espacoes vazios no heap. Se quisermos alocar uma regiao menor do que o chunk livre, podemos repartir o espaco livre. Existem tecnicas para achar o espaco livre.
Caso usemos o free e criemos espacos vazios contiguos, podemos uni-los em um bloco maior (coalescing)
De maneira geral, toda vez que alocamos no heap, um header eh criado em cima da regiao que o ponteiro (void *)_ptr eh alocado. Esse header contem informacoes como:
- size (tamanho da regiao alocada)
- magic number (faz verificacao da qualidade dos bits)
mmap retorna um ponteiro do chunk livre de memoria sbrk pode aumentar o tamanho da heap
