Você está na página 1de 2

Resumo

Organização da Memória de um Programa


• A memória é um componente do computador, responsável pelo armazenamento de dados e
instruções necessárias para execuçãso de programas.
• As células de memória em um computador são responsáveis por armazenar informações na
forma de bits, os quais podem ter dois valores: 0 ou 1. Um conjunto organizado de 8 bits é
chamado de byte. Esses bytes são como pequenos conjuntos de dados e cada byte pode
representar diferentes informações. A razão para isso é que os bits individuais dentro de um
byte podem estar ligados (valor 1) ou desligados (valor 0). Por exemplo, em um byte, o padrão
"00101011" significa algo específico, enquanto "11001100" representa outra coisa.

Endereçamento de Memória
• Cada célula de memória possui um endereço único que a identifica e indica sua localização
específica na memória do computador, permitindo ao sistema encontrar e acessar
precisamente a informação armazenada.

Segmentos Lógicos
São diferentes partes ou seções que organizam a informação armazenada na memória do
computador. Cada segmento tem uma função específica:

Segmento de Código (code) ou de Texto


• Quando o programa é iniciado, uma parte da memória é reservada para armazenar as
instruções do código fonte.
• O sistema operacional carrega o código executável do programa na memória RAM,
permitindo que essas instruções sejam acessadas pelo processador.

1
• Uma vez alocado, o segmento de código permanece na memória enquanto o processo
está em execução.

Segmento de Dados (data)


• É onde ficam armazenadas as variáveis globais e estáticas que o porograma precisa
"lembrar" enquanto está em execução. Como por exemplo a pontuação em um jogo.

Segmento de Stack ou de Pilha


• Gerencia o fluxo de execução e armazena informações temporárias em um bloco
chamado "quadro de ativação" ou "frame de pilha", que guardam informações
relacionadas às funções em execução, como parâmetros, endereços de retorno (indica
para onde o controle deve voltar após a conclusão de uma função) e variáveis locais.
Isso permite que cada chamada de função tenha sua própria instância isolada desses
dados.
• Essa área de memória é organizada como uma estrutura de dados do tipo pilha, onde
dados são empilhados e desempilhados em orgem last-in, first-out (LiFo), ou seja, a
última função chamada é a primeira a ser concluída, e seus dados associados são os
primeiros a serem removidos da pilha.
• Pode variar de tamanho dinamicamente durante a execução do processo, à medida que
as funções são chamadas e retornam. Isso permite uma gestão eficiente da memória.

Segmento Heap
Alocação e Liberação Dinâmica de Memória
• Os blocos de memória são alocados dinamicamente, ou seja, o programa pode
solicitar espaço de memória conforme necessário durante sua execução.
• Isso é útil quando o tamanho dos dados a serem armazenados não é conhecido
antecipadamente ou pode variar
• Além disso, o heap também permite a liberação de blocos de memória quando eles
não são mais necessários, evitando o uso excessivo de recursos.

Gerenciamento Manual
• O programador é responsável por alocar e liberar explicitamente a memória através
do código, usando, por exemplo, na linguagem C, as fun'ções malloc para alocar
espaço na memória e free , para liberá-lo

Você também pode gostar