Pular para o conteúdo principal

Memória Virtual

O Problema: RAM Insuficiente

A RAM é finita. Quando o sistema operacional e os programas em execução consomem toda a RAM disponível, o computador precisa de uma solução para não travar ou encerrar processos forçadamente.

A solução é a Memória Virtual.


O que é Memória Virtual?

A Memória Virtual é um mecanismo do sistema operacional que usa uma parte do armazenamento secundário (HD ou SSD) para simular RAM adicional, criando um espaço de endereçamento maior do que a RAM física disponível.

Definição

Memória Virtual = RAM física + área reservada no HD/SSD (arquivo de swap/paginação)

O SO gerencia quais dados ficam na RAM e quais são temporariamente transferidos para o disco.

PROGRAMA A PROGRAMA B PROGRAMA C PROGRAMA D
│ │ │ │
└────────────┴───────────┴───────────┘

Sistema Operacional
(Gerenciador de Memória)

┌─────────────┴──────────────┐
│ │
RAM Física Arquivo de Swap
(rápida ~70ns) (lento ~100µs–10ms)

Paginação — Como Funciona

O SO divide a memória em blocos de tamanho fixo chamados páginas (tipicamente 4 KB).

Processo de paginação

  1. O SO mantém uma tabela de páginas para cada processo
  2. Páginas raramente usadas são movidas para o disco (swap out)
  3. Quando o programa precisa de uma página que está no disco, ocorre um page fault
  4. O SO carrega a página de volta para a RAM (swap in), possivelmente movendo outra para o disco

🎯 Simulador Interativo de Paginação

Clique nas páginas virtuais abaixo e veja a MMU decidir entre HIT, PAGE FAULT e despejo (swap out) em tempo real — é o mesmo fluxo do diagrama acima, agora interativo:

🗂️

Simulador de Memória Virtual e Paginação

Clique nas páginas virtuais e veja a MMU decidir entre acerto (HIT), falta de página (PAGE FAULT) e despejo (swap out) em tempo real

ℹ️ 8 páginas virtuais (0–7) disputando apenas 4 frames físicos na RAM. Política de substituição: FIFO — a página mais antiga carregada é sempre a primeira a ser despejada, mesmo que tenha sido acessada recentemente (diferente de LRU).

Velocidade da sequência:
💻 Memória Virtual (Processo) — clique para acessar
🧠 RAM Física (4 frames)
frame 0
— livre —
frame 1
— livre —
frame 2
— livre —
frame 3
— livre —
> // Clique numa página virtual para acessá-la, ou rode a sequência automática
Page Faults
0
Hits
0
Taxa de Acerto
0%
💡 Como Funciona: Cada acesso a uma página virtual passa pela MMU. Se a página já está num frame físico, é um HIT (~70 ns). Se não está, é um PAGE FAULT: o SO precisa trazer a página do disco (~50-100 µs — centenas de vezes mais lento). Se não há frame livre, uma página precisa ser despejada (swap out) antes — é exatamente o fluxo do diagrama acima, agora interativo.

Arquivo de Swap / Página de Troca

Cada sistema operacional implementa a memória virtual de forma ligeiramente diferente:

Sistema OperacionalNomeLocal padrão
WindowsArquivo de Paginação (pagefile.sys)C:\pagefile.sys
LinuxSwap partition ou swap file/swapfile ou partição swap
macOSSwap files/private/var/vm/

Configuração no Windows

Por padrão, o Windows gerencia automaticamente o tamanho do arquivo de paginação:

  • Tamanho mínimo: 1× RAM
  • Tamanho máximo: 3× RAM (recomendado pela Microsoft)
  • Localização: pode ser movido para outro disco
dica

Para sistemas com muito acesso ao swap, mova o arquivo de paginação para um SSD NVMe — a velocidade de acesso é até 100× maior que um HD mecânico.


Impacto no Desempenho

O uso de memória virtual inevitavelmente degrada o desempenho, pois o armazenamento em disco é muito mais lento que a RAM:

ComponenteLatência de acesso
Cache L1~1 ns
Cache L3~10 ns
RAM DDR4~70 ns
SSD NVMe (swap)~50–100 µs (750× mais lento)
SSD SATA (swap)~100 µs (1.400× mais lento)
HD mecânico (swap)~5–10 ms (100.000× mais lento)
Degradação de desempenho com swap:

Sem swap (tudo na RAM): ████████████████████ 100%
Com swap em SSD NVMe: ██████████░░░░░░░░░░ ~50%
Com swap em SSD SATA: ████████░░░░░░░░░░░░ ~40%
Com swap em HD mecânico: ██░░░░░░░░░░░░░░░░░░ ~10%
aviso

A Memória Virtual não substitui a RAM física — ela é um recurso de contingência. Um sistema operando constantemente no swap está funcionando muito abaixo de sua capacidade ideal.


Swap ≠ RAM com Mesmo Desempenho

É um erro comum afirmar que a memória virtual "funciona como uma extensão da RAM com mesmo desempenho". Isso está incorreto:

AfirmaçãoCorreto?
"Memória virtual tem mesmo desempenho que a RAM"
"Memória virtual usa cache do processador"
"Memória virtual substitui completamente a RAM"
"Memória virtual usa o HD/SSD e é mais lenta que a RAM"
"Swap em SSD é mais rápido que swap em HD"
"O SO gerencia quais dados ficam na RAM vs disco"
"Page fault causa lentidão perceptível"

Thrashing — O Pior Cenário

O thrashing ocorre quando o sistema passa mais tempo gerenciando páginas entre RAM e disco do que executando programas de fato.

Sintomas:

  • Disco em uso constante (100% de utilização)
  • Sistema extremamente lento ou travado
  • Ventoinhas aceleradas (CPU e disco trabalhando ao limite)
  • Aplicações demoram minutos para responder

Causa: RAM insuficiente para as tarefas em execução.

Solução: Aumentar a RAM física.


Endereçamento Virtual

A memória virtual também serve como abstração de endereçamento — cada processo "acredita" ter acesso a toda a memória do sistema:

Processo A Processo B
Vê: 0x00000000–0xFFFFFFFF Vê: 0x00000000–0xFFFFFFFF
│ │
└──────────┬───────────────────┘

MMU (Memory Management Unit)
(hardware dentro da CPU)

┌──────────┴──────────┐
│ RAM Física │ Disco (swap)
│ (endereços reais) │
└─────────────────────┘

A MMU (Memory Management Unit), embutida na CPU, faz a tradução de endereços virtuais para físicos em tempo real.


Resumo Visual

┌─────────────────────────────────────────────────────┐
│ SISTEMA OPERACIONAL │
│ │
│ Programa A Programa B Programa C │
│ (em RAM) (em RAM) (parcialmente no swap) │
│ │ │ │ │
│ ────┴─────────────┴──────────────┴────────────── │
│ Gerenciador de Memória │
│ ────┬────────────────────────────────────────── │
│ │ │
│ ┌───┴────────┐ ┌──────────────────────┐ │
│ │ RAM Física │◄────────►│ Arquivo de Swap │ │
│ │ (rápida) │ swap │ HD/SSD (mais lento) │ │
│ └────────────┘ in/out └──────────────────────┘ │
└─────────────────────────────────────────────────────┘

Questão de Fixação

Sobre a Memória Virtual, assinale a alternativa correta.

AlternativaAnálise
A) "Mesmo desempenho"❌ — Swap é muito mais lento que RAM
B) "Usa cache do processador"❌ — Usa HD ou SSD, não cache
C) "Substitui completamente a RAM"❌ — É recurso de contingência, não substituto
D) "Usa HD/SSD e o sistema fica mais lento"✅ — CORRETA
E) "Ativada apenas com SSD NVMe"❌ — Funciona com qualquer armazenamento

Próximo: Atividades Práticas

➡️ Atividades Práticas →