A seção stack, ou pilha, é responsável por gerenciar todo o fluxo de execução do processo, empilhando e desempilhando chamadas de funções, parâmetros e variáveis locais que tem um tempo de vida fixo a depender do andamento da execução do programa. Já a seção heap é o local onde são armazenadas as variáveis dinâmicas como, por exemplo, a criação de uma instância de um objeto na linguagem de programação java ou a alocação de um bloco de memória através da utilização do comando malloc da linguagem de programação C.

O esquema de funcionamento das seções stack e heap pode ser visualizado na figura abaixo.

É relevante salientar que o conceito da divisão da memória em áreas é abstrato, já que não há a exigência que a área alocada para cada setor seja contígua, mas sim que sejam definidas áreas específicas para tratar de necessidades comuns, mesmo que fisicamente os blocos estejam fragmentados em memória. A forma como ocorre a alocação de memória irá depender do modelo de gerenciamento adotado pelo Sistema Operacional.

Copyright © 2014 AIEC.