Sistemas Operacionais

Aula 14: Memória Virtual

Referências

Idade da Pedra Lascada

Idade da Pedra Polida

Idade Média

Idade Virtual

Idade Virtual 2

Memória Virtual

Possibilita a execução de processos parcialmente na memória:

Memória Virtual

Paginação sob Demanda

Um paginador preguiçoso é usado para implementar memória virtual:

Problema: O que acontece quando o programa acessa uma página que não está na memória ?

Page Fault

Acesso com paginação:

Se uma página p não está na tabela de páginas, ela não existe.

Page Fault

Acesso com memória virtual:

Se uma página p não está na tabela de páginas:

Page Fault

Acrescentar um bit válido/inválido à tabela de páginas.

Quando o acesso for feito à uma página inválida, gerar uma interrupção de page fault.

Page fault:

Page Fault

Quando o processo voltar a executar a página estará na memória e a tabela de páginas correta.

Desta forma o programa não precisa estar ciente da existência de page faults, somente de um espaço de endereçamento muito grande.

Problemas com Memória Virtual

As vantagens são muitas. Mas quais são as desvantagens ?

Problemas com Memória Virtual

ADD (R1), (R2), (R3)

Se der page fault no endereço (R3) o processador tem que gerar uma interrupção no meio da instrução!
E se der page fault nas três páginas acessadas?

Preço de Page Faults

A. Acesso à página na memória: 126ns. Média de:

B. Acesso à página no disco:

ou seja, uns 25ms.

Tempo de acesso é (p é a probabilidade de page fault)

(1 - p). 126 + p . 25.000.000!!!

Agora vocês sabem porque é melhor comprar mais 32megs do que trocar o P133 por um PII400...

Swap Space

Aonde guardar as páginas descartadas da memória ?

Solução: reservar um espaço em disco como swap, i.e., armazenamento temporário de dados.

Swap é mais eficiente do que arquivos em geral:

Swap Space

Quando usar swap e quando usar arquivo ?

Solução 2 é um compromisso razoável; é usado no BSD Unix.

Swap Space

Swap pode ser de várias formas: