Please enable JavaScript.
Coggle requires JavaScript to display documents.
Uso da memória - Coggle Diagram
Uso da memória
Alocação de variáveis
Um programa em execução armazena suas informações em variáveis, que são basicamente espaços de memória reservados e nomeados. Por exemplo, uma declaração
“int soma” em linguagem C indica uma área de memória de 4 bytes que pode armazenar um número inteiro e cujo nome é soma.
Alocação Estática: o espaço necessário para a variável é definido durante a compilação do programa. O espaço correspondente em memória RAM é reservado
no início da execução do processo e mantido até o encerramento deste. Variáveis com alocação estática são alocadas na seção de memória DATA, se forem inicializadas no código-fonte, ou na seção BSS, caso contrário.
Alocação Automática: Por default, as variáveis definidas dentro de uma função (variáveis locais e parâmetros) são alocadas de forma automática na pilha de execução do programa (seção STACK). O espaço usado para armazenar essas variáveis é alocado quando a
função é invocada e liberado quando a função termina, de forma transparente para o programador.
Alocação Dinâmica: o processo requisita explicitamente blocos de memória para armazenar dados, os utiliza e depois os libera, quando não forem mais necessários (ou quando o programa encerrar). Esses blocos de memória são alocados na seção HEAP, que pode aumentar de tamanho para acomodar mais alocações quando necessário.
A memória de um processo
Cada processo é implementado pelo sistema operacional como uma “cápsula” de memória isolada dos demais processos, ou seja, uma área de memória exclusiva que
só o próprio processo e o núcleo do sistema podem acessar
-
Atribuições de endereços
Quando um programa for compilado, ligado a bibliotecas, carregado na memória e executado pelo processador, cada referência a uma variável, procedimento ou função no programa terá de ser transformada em um ou mais endereços específicos na área de memória do processo.
A atribuição de endereços aos nomes simbólicos pode ocorrer em diversos momentos da vida do programa:
Na edição, na compilação, na ligação, na carga ou na execução
-