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: