GERÊNCIA DE MEMÓRIA VIRTUAL
Introdução
Memória virtual é uma técnica sofisticada e poderosa de gerência de memória, onde as memórias principal e secundária são combinadas, dando ao usuário a ilusão de existir uma memória muito maior que a capacidade real da memória principal. Esta baseada em não vincular o endereçamento feito pelo programa dos endereços físicos da memória principal.
Vantagem: 1 – programas e suas estruturas de dados não limitados ao tamanho da memória física disponível; 2 – permitir um número maior de processos compartilhando a memória principal; 3 – utilização mais eficiente também do processador e 4 – possibilita minimizar o problema da fragmentação da memória principal.
A primeira implementação de memória virtual foi realizada no início da década de 1960, no sistema Atlas, desenvolvido na Universidade de Manchester (Kilburn, 1962). Posteriormente, a IBM introduziria este conceito comercialmente na família System/370 em 1972. Atualmente, a maioria dos sistemas implementa memória virtual, com exceção de alguns sistemas operacionais de supercomputadores. Conceitos relacionados à memória virtual e aborda as três técnicas que permitem sua implementação: paginação, segmentação e segmentação com paginação.
Espaço de Endereçamento Virtual
O conceito de memória virtual se aproxima muito da idéia de um vetor, existente nas linguagens de alto nível. Quando um programa faz referência a um elemento do vetor, não há preocupação em saber a posição de memória daquele dado. O compilador se encarrega de gerar instruções que implementam esse mecanismo, tornando-o totalmente transparente ao programador.
A memória virtual utiliza abstração semelhante, só que em relação aos endereços dos programas e dados. 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 referenciado é traduzido para um endereço