| Vírus + recentes |
vírus
mais recentes

(c)
Sophos PLC,
|
|
| Super Tags |
computador Computadores Conserto dica dicas disco rígido HD Informação Informática internet Linux Macetes manutenção micro micros PC Placa vídeo rede server 2000 2003 2008 técnico Truques Velox Vista XP Windows
|
|
|
Entenda como o mecanismo da Memória Virtual é implementado no
sistema, através dos conceitos de paginação de memória e cache de disco.
A cada ano que
passa, as tecnologias utilizadas no mundo da computação se desenvolvem
cada vez mais, fazendo com que os aplicativos exijam cada vez mais
recursos do sistema. Consequentemente, a quantidade de memória
requisitada também aumenta na mesma proporção.
Em grande parte dos computadores, a quantidade de memória RAM instalada
por padrão não dá conta de rodar sozinha os mais importantes
aplicativos ( navegador, suíte de criação, comunicadores
instantâneos) ao mesmo tempo. Por esse e outros motivos, o mecanismo
de Memória Virtual foi desenvolvido, visando compartilhar a RAM de
maneira eficiente entre os programas. Logo, sua importância para a
computação é inegável, principalmente por aproveitar ao máximo o uso da
RAM.
Neste artigo, vamos focar no modo como esse mecanismo da
Memória Virtual funciona na atualidade. Apesar dos vários exemplos
simplificados durante o texto, o assunto de modo geral é um pouco mais
complexo que o normal, exigindo uma atenção extra durante a leitura.
Antes de falar sobre a memória virtual em si, é importante rever alguns
conceitos relacionados ao modo como os programas são armazenados na
memória.
Como os programas são armazenados na memória física?
Ao
contrário do que muitas pessoas pensam, os programas ficam divididos em
vários pequenos pedaços na memória física e não de forma contínua. Por
exemplo, a tabela abaixo demonstra um exemplo de como os aplicativos Firefox, Skype e Photoshop poderiam estar presentes em uma memória RAM de 8 posições:

Como é possível observar, as posições são ocupadas da seguinte forma:

Apesar da memória ser dividida em pequenos
pedaços, cada programa é enganado pelo sistema operacional, pensando
que a memória é contínua e exclusiva só para ele. Isso acontece por
causa do mecanismo de Memória Virtual, que consiste em criar tabelas
que relacionam posições virtuais e reais da RAM para um mesmo
aplicativo. Por exemplo, o layout de memória(muito simplificado) que o
Firefox enxerga seria algo como o mostrado abaixo:

Olhando a tabela acima, o Firefox enxerga a memória de forma
contínua (posições de 0 a 2) , enquanto a RAM trabalha de forma
dividida em pequenos pedaços. Como é possível notar, a ordem dos dados
não precisa ser a mesma, visto que a posição virtual 1 corresponde à
real 4, e a posição virtual 2 corresponde à real 2.
Memória Virtual e Paginação
A
memória virtual foi um dos mecanismos mais interessantes criados até
hoje no mundo da computação, fazendo com que programas compartilhem a
RAM do sistema, pensando que possuem toda a memória disponível para uso
próprio. Esse conceito engloba e utiliza vários outros menores, como
cache de disco, paginação e tabela de páginas, os quais estão
explicados logo abaixo:
Limitação da Memória Física e o Uso de cache de disco
Sem
o uso da memória virtual e da cache de disco, seria comum o fato da
RAM acabar muito rápido, pois os aplicativos necessitariam mais espaço
do que o disponível. Por exemplo, suponha um computador com 512 de RAM
rodando o Windows Vista e o Firefox. Por padrão, o Vista sozinho já
ocupa aproximadamente 500 MB e o Firefox 100 MB. Fazendo os cálculos,
é possível perceber que os dois aplicativos juntos já estouram a
quantidade de RAM total (600 > 512). A solução mais natural é o uso
da cache de disco, deixando armazenado na memória principal somente os
trechos mais importantes do programa, enquanto que o resto do
aplicativo fica no próprio disco HD( também chamado de memória
secundária ).
Por exemplo, suponha que dois arquivos do
Microsoft Word (aa.doc e bb.doc) estejam abertos ao mesmo tempo, mas
que somente o aa.doc esteja sendo editado no momento. Se você pensar um
pouco, poderá observar que o documento que não está sendo editado
(bb.doc) não precisa estar na memória principal a todo momento.
Simplificando bastante, é mais ou menos isso que acontece, o documento
editado (aa.doc) fica armazenado na RAM e o não editado (bb.doc) na
cache do disco.

Para tornar mais eficiente seu gerenciamento, os dados são armazenados na memória em blocos, os quais são chamados Páginas de Memória.
Logo, continuando com o mesmo exemplo, a página de memória que contem
os dados do documento aa.doc ficaria na RAM, enquanto que a página do
bb.doc estaria somente no disco. Cada documento pode ter uma ou mais
páginas de memória, o que implica no fato de que um mesmo aplicativo
possui muitas delas ao mesmo tempo.

No exemplo acima, com a página do bb.doc somente no disco, a RAM
fica livre para armazenar dados mais importantes de outros programas no
espaço 3. Este é o conceito de cache de disco, utilizado na
implementação da memória virtual.
Sistema de paginação de memória
Até o exato momento, vimos os principais conceitos sobre memória virtual:
- A memória física é compartilhada por vários aplicativos ao mesmo tempo;
- Cada programa enxerga uma versão virtual própria da memória, não correspondendo ao modo real;
- Os programas não podem ser carregados de maneira completa na RAM,
portanto, é necessário armazenar parte deles na memória primária e
outra parte na secundária, através do mecanismo de páginas.
Depois de apresentados os conceitos acima, a paginação de memória é
nada mais que a junção de todos eles. Neste mecanismo, cada programa
possui uma tabela de páginas, a qual informa
a posição exata de um página de memória qualquer ( na RAM ou no Disco).
Em outras palavras, a tabela de páginas é a memória virtual que o
programa enxerga. Para entender esses conceitos de forma mais palpável,
vamos elaborar um exemplo bastante simplificado de sua organização.
Suponha
que 8 arquivos estejam abertos no Word, possuindo os seguintes nomes:
aa.doc, bb.doc, cc.doc, dd.doc, ee.doc, ff.doc, gg.doc e hh.doc. Além
disso, suponha também que cada um dos documentos possui uma página de
memória específica, com o mesmo nome do arquivos. Por motivos de
simplificação, vamos usar uma RAM que armazena 8 páginas.

Continuando, as páginas aa.doc, ee.doc e gg.doc estão na memória,
enquanto que as demais estão no disco. Logo, o mecanismo de paginação e
Memória Virtual pode ser organizado da seguinte maneira:

Na
tabela acima, podemos observar que as páginas do Word estão dividindo
espaço na RAM com outras pertencentes a aplicativos como o Skype e o
Firefox. A maioria dos sistemas operacionais reserva espaço no disco
para efetuar a cache de disco durante a sua própria inicialização.
Normalmente esta é uma região especial, não compartilhada com os demais
arquivos armazenados no HD. No Windows, é possível reservar este
espaço em qualquer partição já existente. Já no Linux, é necessário
criar uma partição especial, chamada de Swap. Substituição de páginas na memória
Finalizando
esta matéria, vamos falar sobre o mecanismo de substituição de páginas.
Quando um programa necessita trabalhar com uma página que não está na
RAM, acontece o que chamamos de Falta de Página. Deste modo, ele
procura um espaço livre e passa a utilizá-lo. Caso toda a RAM esteja
lotada, é necessário efetuar a famosa troca de páginas, que faz com que
a nova página saia do disco e vá para memória, do mesmo modo que alguma
outra presente lá saia da memória e volte para o disco. Existem vários
métodos de escolher qual página será expurgada de lá, entre os mais
usados, está o que determina que o conjunto de dados que está há mais
tempo sem ser acessado deve dar lugar.
Consequentemente, as
tabelas de ambos os programas envolvidos na operação ( uma única tabela
se as páginas forem do mesmo aplicativo), devem ser atualizadas coma as
novas posições de memória das páginas. Este processo é realizado
milhares de vezes por segundo, por vários programas ao mesmo tempo.
Pequenos travamentos em aplicativos
Sabe
quando você está rodando algum aplicativo ou jogo pesado e pequenos
travamentos ocorrem constantemente? Existem muitas possibilidades que o
problema seja ocasionado por “Thrashing”, ou seja, muitas páginas de
memória precisam ser substituídas na mesma hora, confundindo o sistema
e travando momentaneamente o aplicativo. Uma das principais maneiras de
resolver este problema é adicionar mais memória RAM ao computador.
Crédito: Baixaki Não deixe de conferir todas as nossas dicas. Registre-se
Comentários[27]
|
|
|