sexta-feira, 25 de junho de 2010

Recursos do Modo Protegido

Apesar de, em nome da compatibilidade retroactiva com programas desenvolvidos para microcomputadores PC XT e 286, tanto o 386 como todos os processadores actuais poderem operar em modo real, apenas no modo protegido eles incorporam os recursos mais avançados, que permitem a existência dos programas que temos actualmente.

A partir do 386, poucas funções novas foram incorporadas aos novos processadores. Basicamente, evoluímos apenas em termos de velocidade. Tanto que, com um simples 386, é possível utilizar praticamente qualquer programa mais actual, apenas com uma velocidade menor.

O modo protegido traz basicamente quatro novos recursos: memória virtual, multi-tarefa, protecção de memória e o modo virtual 8086.
Memória Virtual 

A capacidade do 386 de trabalhar com vários programas ao mesmo tempo (multi-tarefa) é realmente muito útil, mas esta característica traz um pequeno problema: abrindo vários programas sucessivamente, logo a memória RAM do sistema se esgota. Para corrigir este problema, o modo protegido traz também a memória virtual, que permite criar um arquivo temporário no disco rígido, chamado de Swap File, ou arquivo de troca, que funciona como uma extensão da memória RAM, permitindo abrir quantos programas forem necessários, até que o espaço do disco rígido se esgote.

Por exemplo, só o Windows 2000 Professional, junto com os serviços básicos ocupa cerca de 40 MB de memória. Se você abrir o Word 97, serão necessários mais 10 Megabytes, um total de quase 50 MB. Caso o computador em questão possua apenas 32 MB de memória, seria criado um arquivo temporário de 18 MB no disco rígido, que armazenaria os dados que não couberam na memória RAM.
O problema em usar memória virtual é que o disco rígido é centenas de vezes mais lento do que a memória RAM. Um disco rígido razoável possui um tempo de acesso em torno de 10 milissegundos (milésimos de segundo) enquanto um módulo de memória PC-100 possui um tempo de acesso inferior a 10 nanossegundos (bilionésimos de segundo) ou seja, um tempo de acesso um milhão de vezes menor! Em termos de taxa de transferência, novamente temos um contraste marcante: 800 MB para o módulo de memória e de 5 a 20 MB (dependendo do modelo) para o disco rígido.

Graças a este abismo, apesar dos programas funcionarem normalmente usando memória virtual, o sistema vai ficando cada vez mais lento. Experimente, por exemplo, tentar trabalhar em um PC com apenas 4 MB de RAM (seja qual for o processador) utilizando o Windows 95. A lentidão é insuportável.
No Windows 3.x, era necessário reservar uma quantidade espaço do disco rígido para a memória virtual, quantidade que podia ser configurada livremente através do Painel de Controle. O problema é que este espaço ficava indisponível. Se você possuísse um disco de 800 MB, e reservasse 200 para a memória virtual, ficaria com apenas 600 MB para instalar programas e guardar arquivos. Se por outro lado, você reservasse pouco espaço para a memória virtual, ficaria com pouca memória para abrir vários programas e trabalhar com arquivos grandes.
A partir do Windows 95 este problema foi resolvido com a adopção de um arquivo de troca dinâmico, que vai aumentando ou diminuindo de tamanho conforme a necessidade de memória, evitando o desperdício de espaço em disco que tínhamos no Windows 3.x. A partir do Windows 95, existe também uma administração mais racional dos recursos do sistema, movendo os arquivos mais importantes, acedidos com mais frequência para memória RAM (ou memória cache, dependendo da importância do arquivo), e deixando apenas arquivos usados mais raramente no arquivo de troca. Esta simples medida diminui bastante a perda de performance causada pelo uso da memória virtual.

No Windows 2000 é possível determinar um valor inicial e um valor máximo para um arquivo de troca. No caso do Linux, a fim de melhorar o desempenho, os programadores optaram por criar um sistema de arquivos próprio para a memória virtual. 

Sem comentários: