Gerenciamento De Memoria
Exames: Gerenciamento De Memoria. Pesquise 862.000+ trabalhos acadêmicosPor: giovannyxx7 • 15/10/2013 • 1.457 Palavras (6 Páginas) • 576 Visualizações
GERENCIAMENTO DE MEMÓRIA
1 GERENCIAMENTO DE MEMÓRIA NO LINUX
O gerenciamento de memória é o que torna o sistema operacional mais rápido e funcional. Assim como o Windows, o Linux possui dois sistemas de gerenciamento de memória, a memória física, que cuida da alocação e liberação de blocos de memória, e a memória virtual, que tem o papel de "enganar" os processos, informando que há memória suficiente quando não há. O Linux é um sistema multiprocessos e multiusuários, então devemos ter um controle rígido sobre a memória, para que um processo não sobreponha os recursos (memória) utilizados pelo outro.
O gerenciamento de memória no Linux é realizado com o auxílio de circuitos de hardware presentes nos microprocessadores. Esses circuitos permitem que o gerenciamento de memória seja mais eficiente e seguro, evitando erros causados por software no acesso à memória.
O acesso à memória física não acontece direto do software. No software especificamos o endereço lógico, que consiste do segmento e de um offset representando a distância entre o endereço que desejamos acessar e o início do segmento. O endereço lógico é compilado por uma unidade de segmentação, que o transforma em um endereço virtual.
O Linux utiliza grande parte dos MBytes livres da memória como cache de disco (porções da memória RAM usadas por arquivos e bibliotecas lidos do HD que têm uma maior probabilidade de serem acessados, uma espécie de Prefetch, o que melhora o desempenho do sistema). Conforme mais memória é requisitada, o sistema passa a abrir mão do cache de disco e passa a mover arquivos e bibliotecas não usadas há algum tempo da memória RAM para a memória virtual ou swap, liberando memória física para os aplicativos.
O Linux possui algoritmos refinados que administram o uso de memória SWAP somente quando necessário. Um endereço virtual é dividido em 5 campos: diretório de páginas (PGD), diretório superior de páginas (PUD), diretório intermediário de páginas (PMD), tabela de páginas (PTE) e deslocamento (offset). A tradução de endereços virtuais para físicos é chamado de TLB (Translation Look-aside Buffers).
Existem basicamente quatro momentos em que o sistema operacional trata de paginação. Tais momentos e os respectivos tratamentos estão descritos a seguir:
1.1 Criação do processo
Determina o tamanho do processo
Cria a tabela de página
1.2 Quando processo ganha CPU
Reseta MMU para novo processso
Limpa TLB
1.3 Interrupção de falta de página
Identifica qual é o endereço lógico causador da falta
Escolhe página a ser substituida
Carrega página requisitada para memória
Completa a instrução de máquina
1.4 Quando processo termina
Desaloca tabela de página e páginas na memória e na área de swaping
O swapping é uma técnica aplicada à gerência de memória para programas que esperam por memória livre para serem executados. Nesta situação, o sistema escolhe um processo residente, que é transferido da memória principal para a memória secundária (swap out), geralmente disco. Posteriormente, o processo é carregado de volta da memória secundária para a memória principal (swap in) e pode continuar sua execução como se nada tivesse ocorrido.
O compartilhamento de memória permite aos processos de trabalhar sob um espaço de endereçamento comum em memória virtual. Para que a técnica de swapping seja implementada, é essencial que o sistema ofereça um loader que implemente a relocação dinâmica de programas.
2 GERENCIAMENTO DE MEMÓRIA NO WINDOWS
A memória solicitada pelos programas é fornecida sob demanda. O Windows trabalha com dois tipos de memória. O primeiro deles é a memória principal, também chamada de física. Ela é a quantidade de RAM instalada em sua máquina, os pentes de memória em si. Já a memória conhecida como virtual é uma espécie de memória auxiliar, usada pelo computador em alguns casos especiais. Essa memória é nada mais do que um arquivo hospedado no disco rígido da máquina, e o Windows usa esse arquivo como se ele fosse uma extensão da memória principal.
A memória física recebe aquilo que o Windows considera essencial, como o próprio sistema operacional e as aplicações que o usuário estiver usando no momento. O restante, ou seja, aquilo que o Windows acredita que não será usado tão urgentemente, fica na memória virtual. Endereços de memória virtual automaticamente são convertidos para endereços de (memória RAM) reais pelo hardware. Apenas a partes centrais do kernel do sistema operacional ignoram a conversão de endereços e usam endereços de memória real diretamente.
Memória virtual é sempre que está sendo usada, mesmo quando a memória necessária para todos os processos em execução não exceda o volume de memória RAM instalada no sistema.
A memória virtual combina a RAM do computador com espaço temporário no disco rígido. Quando a RAM fica insuficiente, a memória virtual move os dados da RAM para um espaço chamado arquivo de paginação (pagefile.sys).
Quanto mais RAM um computador tem, mais rápido ele irá executar os programas. Se a falta de RAM estiver diminuindo o desempenho do computador, é possível que você fique tentado a aumentar a memória virtual para compensar. Entretanto, como o computador pode ler dados da RAM com muito mais rapidez do que de um disco rígido, a melhor solução é adicionar RAM.
O arquivo pagefile.sys é utilizado também para uso interno do sistema, como as informações de despejo de memória.
Técnicas de paginação
Para que a utilização da memória
...