Buscar

Organização da Memória de um Programa

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

1
Organização da Memória de um Programa
Complexidade Média
Fonte Faculdade
Status Completo
Introdução
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:
2
Segmento de Código (code) ou de Texto
É o espaço reservado quando o programa é iniciado 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.
•
Uma vez alocado, o segmento de código permanece na memória enquanto o processo 
está em execução.
•
Segmento de Dados (data)
Armazena os dados que estão sendo processados e manipulados pelo programa em 
execução, como por exemplo as variáveis globais e estáticas. 
•
Dúvida
O segmento de dados tem o tamanho fixo ou variável durante a execução do programa? 
No site da estácio diz que o tamanho é fixo, mas isso não faz muito sentido pra mim, 
porquê esse tamanho poderia variar durante a execução a partir da criação de novas 
variáveis, por exemplo.
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 ordem 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.
•
3
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

Continue navegando