Qual é a unidade de alocação usual para um processo no Linux?

3

Atualmente estou estudando gerenciamento de memória em sistemas operacionais.

Unidade de alocação é a menor unidade de memória que o SO fornecerá a qualquer processo.

Eu li em esta página , na seção 'Alocação de memória dentro do kernel', que uma página é a menor unidade que um sistema operacional dará a um processo.

Mas em esta página , na seção 'Memória alocada', o sistema operacional pode dividi-la em pedaços muito menores (6 bytes, por exemplo) e fornecê-lo ao aplicativo quando solicitado.

Não tenho certeza se os dois links estão falando sobre a mesma coisa, mas minha pergunta é: qual é a unidade de alocação usual em um sistema operacional com memória virtual e paginação?

    
por pedros 14.10.2015 / 01:56

1 resposta

8

Na sua segunda referência, onde diz

The memory allocator gets a big chunk of memory (say, 4 pages, or 4 * 4 KiB) and divides this into much smaller chunks

"o alocador de memória" não é o kernel, mas as rotinas libc como malloc.

O kernel aloca a memória ao processo em pedaços de tamanho de página. O malloc acompanha as partes usadas e não usadas dessas páginas conforme o aplicativo as solicita e as libera.

    
por 14.10.2015 / 02:44