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

Bibliografia

https://pages.cs.wisc.edu/~remzi/OSTEP/vm-freespace.pdf