Você está na página 1de 3

UFRPE UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO

ALUNO: Humberto B. da Silva Jnior



Gerenciamento de Memria

No campo da tecnologia da informao, o gerenciamento de memria
um tema que tem muita importncia, uma ateno especial voltada a ele,
vrias tcnicas so constantemente desenvolvidas para a sua melhora. Os
programadores necessitam de mais memria a cada dia, a necessidade de ter
vrios programas sendo executados ao mesmo tempo tambm aumenta, e
com esse aumento vrios requisitos podem perder qualidade, como o
desempenho. A memria de um computador no infinita, e quando a
memria no tem mais espao disponvel ocorrem erros.
O gerenciamento de memria essencialmente formado pela alocao
e reciclagem da memria:

1. Alocao da Memria:
Acontece quando o programa, que est sendo executado, requisita um
bloco de memria, o gerenciador por sua vez, disponibiliza o bloco de
memria para a alocao desejada.

1.1 Alocao Esttica:
Bloco de memria alocado quando o programa compilado, comandado
pelo sistema operacional, que ao ler o programa, reserva o bloco de
memria desejado.

1.2 Alocao Dinmica:
A alocao feita quando o programa executado, a memria
reservada para a alocao dinmica chamada de heap, em linguagens
que no tem o gerenciamento automtico de memria, como a linguagem
C, existem vrios mtodos de organizar o heap. Em outras linguagens o
gerenciamento automtico, como na linguagem Java, esse
gerenciamento automtico chamado de Garbage Collector (Coletor de
lixo), assunto que ser tratado posteriormente.


2. Reciclagem da Memria:
Depois que um bloco da memria alocado, e no ser mais utilizado,
no tendo mais nenhuma referncia a ele pelo programa, esse bloco pode
ento ser liberado, sendo liberado poder ser utilizado novamente, ficando
assim livre e a disposio novamente do programa que est sendo
executado.

2.1 Reciclagem Interna:
Quando os blocos de memria, chamados de pgina, no so ocupados
por completo pelo processo a eles destinado, gerado assim um espao
que no est sendo utilizado e poder, se liberado, ser utilizado
novamente.

2.2 Reciclagem Externa:
Quando os programas vo sendo finalizados, deixam lacunas entre as
pginas criadas, se essas lacunas forem muito pequenas, o suficiente para
que o que precisa ser escrito na memria no caiba nela, essas lacunas
ficam inutilizadas.

A paginao um processo virtual da memria, que divide a memria
fsica em frames (pequenas parties), permitindo assim, uma utilizao mais
eficiente da mesma. Quando uma alocao de memria solicitada, so
pginas que so liberadas, que a menor unidade desse processo. Cada
pgina mapeada em uma frame, chamado assim de paginao.

Gerenciamento Manual de Memria

O programador responsvel de especificar explicitamente, quando e
como a memria ser alocada, mudando assim a configurao do programa de
acordo com a sua necessidade e (ou) vontade. Nesse modelo de
gerenciamento, problemas conhecidos como vazamentos de memria podem
ocorrer, tais problemas ocorrem quando um bloco da memria alocado, e
mesmo que no seja mais til, no liberado, mantendo assim o seu uso,
desperdiando um espao que poderia ser utilizado por outro processo, que
esteja sendo executado.
Gerenciamento Automtico

Conhecido como Garbage Collector, libera os blocos da memria que
no esto mais sendo utilizados automaticamente. O bom conhecimento sobre
esse tema muito importante para desenvolver programas com alto
desempenho, pois se um programa forar o sistema operacional a usar a
memria virtual, seu desempenho no ser muito eficiente.
O Garbage Collector libera o programador de ter que gerenciar a
memria do programa, no precisando assim, o programador, de ficar atento
aos detalhes do gerenciamento de memria, pois ele j faz isso de forma
automtica, reduzindo ou at eliminando possveis defeitos dos softwares
desenvolvidos, se tratando de uma tcnica mais confivel. A regio da memria
pode ser liberada mais de uma vez, diminuindo assim a possibilidade de
ocorrer um esgotamento de memria.
Para decidir quais blocos da memria podem ou no ser liberados, o
Garbage Collector usa processos que consomem recursos computacionais,
diminuindo assim o desempenho do programa, devido sobrecarga do seu
uso. E tambm deixa o programador desatento aos detalhes de memria.
A liberao automtica de memria ocorre atravs de algoritmos.
Existem vrias estratgias para isso, que dependendo do programa criado
podem ser vantajosos ou desvantajosos, apresentando impacto direto no
desempenho. O objetivo desses algoritmos garantir a identificao precisa de
todos os ponteiros e a reciclagem de toda a memria inutilizada.
Dentre os algoritmos de gerenciamento de memria automtica,
podemos citar como os mais conhecidos:
Reference counting algorithm (Collins 1960);
Cycle collecting algorithm (Bobrow 1980);
Mark and sweep algorithm (McCarthy 1960);
Copying algorithm (Cheney 1970).

Referncias:
PINTO, Flvio; LUNA, Hedley. Gerenciamento de Memria em Java.
http://www.devmedia.com.br/desmistificando-o-garbage-collector/5451
http://pt.scribd.com/doc/73307165/25/Gerenciamento-manual-de-memoria