Artigo MEMÓRIA VIRTUAL WINDOWS 7

Published on January 2017 | Categories: Documents | Downloads: 42 | Comments: 0 | Views: 106
of 4
Download PDF   Embed   Report

Comments

Content

MEMÓRIA VIRTUAL WINDOWS 7 Jonas Mayer Universidade Regional Integrada – Curso de Ciência da Computação – Campus Santiago Av. Batista Sobrinho, s/n – CEP 97700-000 – Santiago – RS

Resumo A elaboração do artigo foi feita a partir de uma pesquisa bibliográfica, tendo como objetivo ressaltar alguns dos aspectos mais importantes sobre memória virtual e o seu uso no Windows 7. Palavras-chave: memória virtual ; Windows; RAM; 1. Introdução Antes de apresentar o conceito de memória virtual, temos que falar sobre memória RAM, a memória RAM serve para armazenar temporariamente dados de programas que estão sendo processados. A memória RAM é muito veloz e também volátil, ou seja, ela apaga os dados quando não tem mais energia. 2. Memória virtual Memória virtual é uma técnica de gerenciamento onde a memória principal e secundaria são combinadas, oferecendo ao usuário a impressão de existir uma memoria maior que a memoria principal. O conceito consiste em desvincular o endereçamento feito pelo processo dos endereços físicos da memoria principal. Assim os processos e suas estruturas de dados não são limitados pela memória RAM. Um programa no ambiente de memória virtual não faz referência a endereços físicos de memória (endereços reais), mas apenas a endereços virtuais. No momento da execução de uma instrução, o endereço virtual é traduzido para um endereço físico para poder ser atendido pela CPU. O mecanismo de tradução do endereço virtual para o endereço físico é denominado mapeamento. 2.1 Paginação A memória virtual por paginação é a técnica de gerência de memória onde o espaço de endereçamento virtual e o espaço de endereçamento real são divididos em blocos de mesmo tamanho chamados de páginas . As páginas no espaço virtual são denominadas páginas virtuais, enquanto as páginas no espaço real são chamadas de páginas reais ou frames. O mapeamento entre um endereço virtual e real é realizado por uma tabela de página exclusiva à cada processo, através de uma ETP (entrada na tabela de páginas). Na paginação, um endereço virtual é formado por um NVP (número de página 1

virtual) e um deslocamento dentro da página (offset). Além de informações sobre a localização física da página virtual, a ETP contém outras informações importantes como: • Bit de validade (indica se está carregada na RAM) • Bit de modificação (indica se foi modificada) • Bit de referência (indica se foi usada) • Bit de proteção (indica o tipo de acesso permitido) A paginação pode ocorrer de 2 modos: • Paginação por Demand (Demand Paging) - As paginas dos processos são transferidas da memoria secundaria para a principal apenas quando são referenciadas. • Paginação por Antecipação (Antecipatory Paging) - As paginas próximas aquela referenciada também são carregadas, simulando uma previsão de quais paginas serão necessárias, trazendo-as antecipadamente para a memoria. 2.2 Mapeamento em múltiplos níveis Uma das limitações do mapeamento direto é que todas as ETPs têm que estar carregadas na memória RAM de forma contígua e sequencial por número de página; além das tabelas consumirem um espaço considerável na RAM. Tabelas de páginas multiníveis ou hierárquicas permitem ao SO armazenar partes da tabela de páginas de um processo, o qual esteja usando ativamente em porções não contíguas da RAM. As porções remanescentes da tabela de páginas podem ser criadas apenas na primeira vez que forem usadas e, quando deixarem de ser usadas ativamente, são transferidas para o a memória secundária. A grande vantagem desse tipo de mapeamento é a economia de memória RAM, dado que ele mantém residente apenas as tabelas necessárias que estão em uso; a desvantagem, é que a tradução vai ficando mais lenta a cada nível de acesso introduzido, pois existe um acesso de leitura à RAM adicional. 2.3 Buffer de tradução lateral O buffer de tradução lateral também é conhecido como TLB (Translation Lookaside Buffer) e é um mecanismo de memória associativa para mapear endereços de forma muito rápida, usando cache (hardware e parte integrante da MMU). Dado que a maioria das aplicações referencia um número reduzidos de frames na memória principal; seguindo o princípio da localidade, somente uma pequena parte da tabela de mapeamento é realmente necessária. A TLB pode ser implementada com muito poucas entradas, mapeando de 8 a 2048 endereços e, mesmo assim, a taxa de acertos (TLB hits) é muito alta, reduzindo o impacto da gerência de memória de forma significativa . Em alguns momentos a TLB fica com todas as suas entradas ocupadas e novos endereços precisam ser armazenados; para esses casos, normalmente usada se uma política de substituição aleatória de endereços. 2.4 Segmentação A segmentação é uma técnica de gerência de memória, onde os processos são divididos logicamente em sub-rotinas e estruturas de dados, e colocados em blocos de informações na memória. 2

Os blocos tem tamanhos diferentes e são chamados de segmentos, cada um com seu próprio espaço de endereçamento. Normalmente, o SO limita o número máximo de segmentos de um processo e o tamanho máximo dos segmentos, mas o tamanho do segmento pode variar durante a execução do processo, facilitando implementar estruturas de dados dinâmicas O mecanismo de mapeamento é muito semelhante ao de paginação, os segmentos são mapeados através de TMS (tabela de mapeamento de segmentos) e os endereços são compostos por NSV (número do segmento virtual) e um deslocamento . Cada segmento possui uma ETS (entrada na tabela de segmentos) e, agora, também é necessário armazenar os tamanhos de cada segmento, pois eles variam. 2.5 Paginação x Segmentação e Segmentação com paginação

Fig. 2.5 Paginação vs segmentação [MAR]

A memória virtual por segmentação paginada é a técnica de gerência de memória onde o espaço de endereçamento é dividido em segmentos numa primeira etapa e os segmentos são divididos em páginas numa segunda etapa. O objetivo desta técnica é tentar tirar partido das vantagens das técnicas e paginação e segmentação ao mesmo tempo; isto é a simplicidade arquitetônica da paginação e as facilidades de controle de acesso da segmentação. Na visão do programador, o processo continua sendo mapeado em segmentos de tamanhos diferentes em função das sub-rotinas e estruturas de dados definidas no programa, no entanto, o sistema trata cada segmento como um conjunto de páginas de tamanho igual, mapeadas por uma tabela de páginas associada ao segmento e, com isso, os segmentos não precisam estar contíguos na memória. Neste modo de gerenciamento, o mapeamento de endereços é feito em duas etapas; o endereço virtual é formado por um NSV mapeado a uma ETS, cujo resultado é mapeado 3

a uma ETP, para se determinar o frame correspondente. Os principais SOs modernos implementam esta técnica de gerenciamento de memória. 3. Memória virtual no Windows 7 Nos sistemas operacionais modernos, como o Windows, aplicativos e muitos processos do sistema sem preferência de memória usam endereços de memória virtual. Endereços de memória virtual automaticamente são convertidos para endereços de (memória RAM) reais pelo hardware. Apenas as partes centrais do kernel do sistema operacional ignoram a conversão de endereços e usam endereços de memória real diretamente. 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. Isso libera a RAM para concluir seu trabalho. Memória virtual está sempre sendo usada, mesmo quando a memória necessária para todos os processos em execução não excede o volume de memória RAM instalada no sistema. 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 tentar 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 Windows 7 permite que se tenha um tamanho dinâmico do espaço em disco para memória virtual, este tamanho pode ser gerenciado pelo sistemo ou definido pelo usuário. 4. Conclusão No Windows 7 a memória virtual é um recurso muito útil que pode ser usado se o S.O necessitar de mais memória do que há no computador, porem como ela está no HD ela não vai ser tão rápida quanto a RAM. Referências [MAR ] [MIC ] . [AND 2010] . MARQUES. Glauco . Aula 07 Sistemas Operacionais, ACP MICROSOFT. http://windows.microsoft.com/pt-BR/windows-vista/ What-is-virtual-memory ANDRE. Nícolas, O que é memória virtual , http://www.iotecnologia.co m.br/o-que-e-memoria-virtual

4

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close