Ao gerar um novo processo, o Sistema Operacional, além de criar a entrada no PCB, automaticamente reserva o espaço de armazenamento na memória. Este espaço se torna, então, de uso exclusivo deste novo processo, evitando a concorrência pelo uso do recurso de memória compartilhado.
Quando alocado em memória, o processo é composto por uma série de elementos, cada um responsável pelo atendimento de uma necessidade específica. De forma simplificada, pode-se dividir o bloco de memória do processo em quatro diferentes seções: text, data, heap e stack.
Neste modelo, o código a ser executado pelo processo é armazenado na seção text do bloco de memória. Normalmente o tamanho desta seção é fixo, tendo sido determinado durante a compilação do código fonte do programa. Já a seção data é o local onde estão armazenadas as informações relacionadas às variáveis globais e as variáveis locais estáticas, informações que, assim como o código a ser executado, podem ser definidas no momento da compilação do software, o que faz com que esta área também tenha tamanho fixo.
O tamanho do bloco de memória é justamente uma das principais características que diferenciam as seções heap e stack das demais, já que, diferente das seções text e data, o tamanho do bloco de memória alocado para estas áreas não é fixo, podendo variar de acordo com a execução do processo. Conforme pode ser observado no esquema de memória exibido na figura, todo o espaço livre do bloco alocado para o processo é utilizado de forma compartilhada pelas seções heap e stack.