Alocação De Memoria
Trabalho Escolar: Alocação De Memoria. Pesquise 862.000+ trabalhos acadêmicosPor: feibidesouza29 • 19/9/2013 • 893 Palavras (4 Páginas) • 542 Visualizações
Alocação de memória, em ciência da computação, consiste no processo de solicitar/utilizar memória durante o processo de execução de um programa de computador. A alocação de memória no computador pode ser dividida em dois grupos principais:
• Alocação Estática: os dados tem um tamanho fixo e estão organizados seqüencialmente na memória do computador. Um exemplo típico de alocação estática são as variáveis globais e arrays;
• Alocação Dinâmica: os dados não precisam ter um tamanho fixo, pois podemos definir para cada dado quanto de memória que desejamos usar. Sendo assim vamos alocar espaços de memória (blocos) que não precisam estar necessariamente organizados de maneira seqüencial, podendo estar distribuídos de forma dispersa (não ordenada) na memória do computador. Na alocação dinâmica, vamos pedir para alocar/desalocar blocos de memória, de acordo com a nossa necessidade, reservando ou liberando blocos de memória durante a execução de um programa. Para poder “achar” os blocos que estão dispersos ou espalhados na memória usamos as variáveis do tipo Ponteiro (indicadores de endereços de memória).
7.1 Alocação Estática
Alocação de Espaço em Memória
Como já foi visto anteriormente, a memória de um computador compõe-se de uma
sequência de palavras, ou bytes, endereçada. Nesta memória são colocados todos os
programas executados pelo computador.
Os programas são compostos por código (instruções) e dados (variáveis). Estes
programas são carregados na memória quando forem chamados para execução e são
retirados da memória quando for finalizada a sua execução. Assim, em determinado
momento, a memória está com partes ocupadas e livres.
A utilização da memória é controlada pelo Sistema Operacional. O Sistema
Operacional mantém uma tabela que informa quais partes da memória estão livres
(memória disponível) e quais partes da memória estão ocupadas (memória ocupada).
Toda vez que um programa for executado, o Sistema Operacional aloca (reserva), da
memória disponível, o espaço suficiente para as variáveis deste programa. Esta memória
passa a ser ocupada e não será mais alocada para outras variáveis, até que o programa
termine. Desta forma, as memórias disponível e ocupada crescem e diminuem a medida que
diferentes programas são executados.
Existem 2 (dois) tipos de variáveis: estática e dinâmica. Veremos aqui somente as
variáveis estáticas, pois as variáveis dinâmicas serão objetos de estudo posterior.
As variáveis estáticas são alocadas antes que o programa entre em execução. O
programa solicita ao Sistema Operacional que aloque espaço da memória disponível para
as variáveis estáticas. Então, o Sistema Operacional retira da memória disponível o espaço
necessário para as variáveis e coloca na memória ocupada.
IMPORTANTE!!! As variáveis geralmente são alocadas na mesma ordem em que
elas aparecem na declaração.
O Sistema Operacional garante que o espaço de memória utilizado por uma Var
estática jamais poderá ser utilizado por uma outra. Esta garantia não é dada às variáveis
dinâmicas, como veremos.
Para cada Var será alocada uma quantidade de espaço diferente, dependendo do tipo
da Var e da linguagem de programação utilizada. A seguir descreveremos o tamanho de
memória utilizada pelas variáveis de tipos comumente conhecidos.tipo Integer = 2 bytes
tipo Real = 6 bytes
tipo String [n]= n bytes
tipo Char = 1 byte
tipo Boolean = 1 byte
tipo Record = somatória dos tamanhos dos campos
ex: Record
nome: String [30] ;
idade: Integer ;
sexo: Char ;
salário: Real ;
End;
somatória = 30 + 1 + 1 + 6 = 38 bytes
A memória alocada para uma variável vetorial depende da quantidade de campos e
do tipo do campo. Alguns exemplos podem ser dados:
V: Array[1..100] of Real ; total de memória = 100*6 = 600 bytes
A: Array[1..20,1..50] of Integer ; total de memória = 20*50*2 = 2000 bytes »
2Kbytes
Nomes: Array[1..2000] of Record total = 2000*38 = 76000 bytes » 76Kbytes
nome:
...