Gerenciamento de memória: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Ci.cp (discussão | contribs)
Linha 2:
'''Gerenciamento de memória''' é um complexo campo da [[ciência da computação]] e são constantemente desenvolvidas várias técnicas para torná-la mais eficiente. Em sua forma mais simples, está relacionado em duas tarefas essenciais:
* '''Alocação''': Quando o programa requisita um bloco de [[memória]], o gerenciador o disponibiliza para a alocação;
* '''Reciclagem''': Quando um bloco de memória foi alocado, mas os dados não foram requisitados por um determinado numeronúmero de ciclos ou não há nenhum tipo de referência a este bloco pelo programa, esse bloco é liberado e pode ser reutilizado para outra requisição.
 
== Gerência de Memória ==
Linha 9:
=== Alocação ===
A alocação de memória pode ser:
* Alocação estáticaEstática: Decisão tomada quando o programa é compilado.
* Alocação dinâmicaDinâmica: Decisão é adiada até a execução. (Permite swappingSwapping)
 
=== Fragmentação ===
Desperdício de páginas de memória alocadas.
 
Pode ser de dois tipos: interna e externa.
Linha 25:
=== Paginação ===
"Quebra" a memória do processo permitindo espaços de endereçamento não contíguos.
 
.
 
=== TLB ===
Linha 64:
Os algoritmos de ''garbage collection'' operam de um modo que permite classificá-los em duas grandes famílias:
 
* identificaçãoIdentificação directaDireta: por contagem de referências (''reference counting'');
* identificaçãoIdentificação indirectaIndireta: por varrimento (''tracing''), que pode incluir também compactação da memória livre; cópia; ou geracional (utilizado nas máquinas virtuais Java e .Net)
 
== Gerenciamento de memória no DOS ==