LRM Prof. Mantovani ← Aulas da disciplina
Semana 9 · Aula 9 de 14

Memória virtual e cache

Paginação por demanda, algoritmos de substituição de páginas, a hierarquia de memória e o impacto da cache no desempenho — com simulador de substituição.

📚 Sistemas Operacionais🧪 1 simulador(es)📝 mini-quiz ao final
Objetivos da aula

O que você vai aprender

1

Explicar a paginação por demanda e o tratamento de uma falta de página.

2

Comparar algoritmos de substituição (FIFO, LRU, ótimo) e a anomalia de Belady.

3

Relacionar a hierarquia de memória e a localidade ao desempenho da cache.

4

Reconhecer o thrashing e por que paginação é evitada em tempo real.

1 · Motivação

Como rodar um programa maior que a RAM?

Você tem 8 GB de RAM, mas abre um editor de vídeo, um navegador com 40 abas e uma máquina virtual — somados, pedem 20 GB. Por que nada trava? Porque o SO mantém na RAM apenas as páginas realmente em uso e guarda o resto no disco, trazendo-as quando necessário.

A memória virtual é essa ilusão: cada processo enxerga um espaço de endereçamento gigante, e o SO, com a MMU, decide o que fica na RAM e o que dorme no disco. É a continuação direta da Aula 8 — agora os bits de presente/ausente entram em ação.

2 · Mapa

O que veremos nesta aula

Paginação
por demanda
Falta de
página
Algoritmos de
substituição
Hierarquia
e cache

Veremos como o disco vira extensão da RAM, qual página remover quando a RAM enche, e por que a cache — outra camada da hierarquia — depende do mesmo princípio: a localidade.

3 · Conceito

Memória virtual e paginação por demanda

Memória virtual. Ilusão de uma memória maior que a RAM física, mantendo no disco (área de swap) as páginas não usadas e trazendo-as sob demanda.
Paginação por demanda. Uma página só é carregada na RAM quando é efetivamente acessada — nunca antes.

No início, quase nenhuma página do processo está na RAM. Cada primeiro acesso a uma página dispara uma falta de página que a traz do disco. Programas grandes "ganham vida aos poucos".

4 · Explicação

O custo de uma falta de página

Uma falta de página (page fault) é barata de detectar (a MMU faz na hora), mas cara de resolver. O fluxo: a MMU gera exceção; o SO encontra a página no disco; se a RAM está cheia, escolhe uma vítima para despejar; lê a página nova; atualiza a tabela; reexecuta a instrução.

O gargalo é o disco. Um acesso à RAM leva ~100 ns; uma falta que toca um HDD leva milhões de nanossegundos. Por isso a taxa de faltas precisa ser baixíssima: até uma falta a cada milhão de acessos já degrada o desempenho perceptivelmente.

5 · Exemplo

FIFO em ação (3 quadros)

Sequência de referências 1, 2, 3, 4, 1, 2, 5 com 3 quadros, usando FIFO (✗ = falta):

Ref.1234125
Quadro A1✗114✗445✗
Quadro B2✗221✗11
Quadro C3✗332✗2

São 7 faltas em 7 referências. A página mais antiga (a primeira a entrar) é sempre a primeira a sair, independentemente de estar em uso.

6 · Interativo

Passo a passo: tratando uma falta de página

Passo 1
A CPU acessa uma página; a MMU vê o bit "ausente" e gera uma exceção de falta de página.
Passo 2
O SO assume, valida o acesso e localiza a página na área de swap do disco.
Passo 3
Se não há quadro livre, o algoritmo de substituição escolhe uma página vítima.
Passo 4
Se a vítima foi modificada (dirty), ela é escrita de volta ao disco; senão, é descartada.
Passo 5
A página nova é lida para o quadro, a tabela é atualizada e a instrução é reexecutada.
7 · Conceito

Algoritmos de substituição

Substituição de páginas. Política que decide qual página remover da RAM quando é preciso espaço para uma nova. O objetivo é minimizar o número total de faltas de página.
AlgoritmoCritérioObservação
FIFOA mais antiga saiSimples; sofre a anomalia de Belady
LRUA menos recentemente usadaBoa aproximação do ótimo; cara de implementar exata
Ótimo (OPT)A que será usada mais tardeIdeal teórico; irrealizável (exige ver o futuro)
8 · Explicação

Por que LRU funciona e FIFO falha

O LRU aposta na localidade temporal: o que você usou há pouco, provavelmente usará de novo. Logo, remover a página menos recentemente usada costuma acertar. O LRU faz parte dos chamados algoritmos de pilha, que nunca sofrem a anomalia de Belady.

O FIFO ignora o uso: pune a página mais antiga mesmo que ela seja a mais quente. Por isso pode tomar péssimas decisões — e exibir a contraintuitiva anomalia de Belady. Na prática, SOs usam aproximações baratas do LRU, como o algoritmo do relógio (clock/segunda chance), que usa o bit de "acessado" da tabela de páginas.

9 · Analogia

A bancada e o depósito

🧰 Analogia
Sua bancada (RAM) cabe poucas ferramentas; o depósito no fundo (disco) guarda o resto. Quando precisa de uma ferramenta que está no depósito, você anda até lá (falta de página, lento) e, se a bancada está cheia, guarda alguma. O LRU diz: guarde a ferramenta que você não toca há mais tempo. O FIFO diz: guarde a que está há mais tempo na bancada — mesmo que seja o martelo que você usa o dia todo.
10 · Comparação

A hierarquia de memória

NívelLatência típicaCapacidadeGerido por
Registradores~0,3 nsbytesCompilador
Cache L1/L2/L31–40 nsKB a dezenas de MBHardware
RAM~100 nsGBSO (MMU)
SSD~50–100 µsTBSO (swap/FS)
HDD~10 msTBSO (swap/FS)
💡
Cada degrau abaixo é ~10–100× mais lento, porém maior e mais barato por byte. A arte é manter os dados quentes nos níveis de cima.
11 · Fluxo

A localidade salvando o desempenho

Acesso a
endereço
Dado vizinho/recente
provável
Está na cache
(hit)
Acesso
rapidíssimo
🔑
A cache só funciona por causa da localidade: temporal (o que foi usado tende a ser reusado) e espacial (vizinhos tendem a ser usados juntos). É o mesmo princípio que faz a TLB, o LRU e o swap funcionarem.
12 · Aprofundamento

Thrashing e o conjunto de trabalho

Thrashing. Estado em que há páginas demais competindo por pouca RAM: o sistema passa mais tempo paginando (movendo páginas entre RAM e disco) do que executando trabalho útil.
Conjunto de trabalho (working set). Conjunto de páginas que um processo usa ativamente numa janela de tempo. Se a RAM não comporta os working sets somados, vem o thrashing.

A curva é traiçoeira: o desempenho cresce com mais processos até um pico e então despenca quando o thrashing começa. A defesa do SO é controlar o grau de multiprogramação — suspender processos para que os working sets caibam na RAM.

13 · Interativo

Verifique seu entendimento

Por que o algoritmo ótimo (OPT) é impossível de implementar em um SO real?

OPT remove a página cujo próximo uso está mais distante no futuro. Como o SO não conhece o futuro do programa, OPT serve apenas como referência teórica para comparar os algoritmos reais.
14 · Caso prático

Por que RTOS desliga o swap

Em um servidor, uma falta de página ocasional é só uma pausa imperceptível. Em um sistema de tempo real que controla um airbag ou um marca-passo, ela seria fatal: uma página despejada para o disco e trazida de volta adiciona milissegundos imprevisíveis a uma operação que deveria levar microssegundos.

Por isso, sistemas de tempo real rígido geralmente desabilitam a paginação para disco (no Linux, usa-se mlockall para fixar páginas na RAM). Toda a memória crítica fica residente, garantindo latência limitada e determinística. Previsibilidade vence capacidade.

15 · Erros comuns

Confusões frequentes

⚠️
Erros comuns nesta aula:
• Achar que "mais quadros sempre reduzem faltas" — no FIFO, a anomalia de Belady mostra o contrário.
• Confundir falta de página (página no disco) com falta de TLB (tradução não cacheada, mas página na RAM).
• Pensar que LRU e ótimo são a mesma coisa — LRU olha o passado; ótimo olha o futuro.
• Tratar a cache como "gerida pelo SO" — as caches L1/L2/L3 são de hardware; o SO gere RAM e swap.
16 · Dicas

Como contar faltas sem errar

Ao simular substituição à mão: desenhe uma coluna por referência e uma linha por quadro. Marque a falta (✗) toda vez que a página referenciada não estiver nas linhas. Para FIFO, mantenha uma fila da ordem de chegada; para LRU, anote a ordem de último uso. Confira sempre no simulador de substituição de páginas — ele revela rapidamente seus erros de contagem.
17 · Interativo

Revele a resposta

O que é a anomalia de Belady e por que LRU não sofre dela?
A anomalia de Belady é o fenômeno em que aumentar o número de quadros aumenta o número de faltas no FIFO — o oposto do esperado. Ela ocorre porque o FIFO não respeita a propriedade de inclusão: o conjunto de páginas com N quadros não é necessariamente subconjunto do conjunto com N+1 quadros. LRU e OPT são "algoritmos de pilha": garantem essa inclusão, então mais quadros nunca pioram, e a anomalia jamais aparece.
18 · Flashcards

Revisão relâmpago

Paginação por demandavirar
A página só é trazida à RAM quando efetivamente acessada.
Anomalia de Beladyvirar
No FIFO, mais quadros podem aumentar as faltas; LRU e OPT não sofrem disso.
Localidadevirar
Temporal (reuso do recente) e espacial (uso de vizinhos); base de cache, TLB e LRU.
Thrashingvirar
Páginas demais, RAM de menos: o sistema pagina mais do que computa.
Working setvirar
Conjunto de páginas ativamente usadas numa janela de tempo.
19 · Conexões

Para onde isso leva

Esta aula amarra hardware e SO de ponta a ponta:

  • Os bits "ausente" e "dirty" vêm da tabela de páginas da Aula 8.
  • O swap usa o disco da Aula 11; substituir e escrever de volta envolve E/S.
  • A localidade reaparece na E/S com buffers (Aula 10) e na cache de disco.
  • Desligar o swap é requisito do tempo real (Aula 12).
20 · Síntese

Resumo da aula

🔑
A memória virtual usa paginação por demanda: páginas só entram na RAM quando acessadas, e o disco serve de extensão. Quando a RAM enche, um algoritmo de substituição escolhe a vítima — FIFO (simples, sofre Belady), LRU (aproxima o ótimo) ou OPT (ideal teórico). A hierarquia de memória troca velocidade por capacidade, e a localidade torna cache e TLB eficazes. Thrashing arruína o desempenho; em tempo real, a paginação para disco é proibida.
Mão na massa · colaborativo

Atividade em grupo · Caçando faltas de página

Em trios, comparem algoritmos de substituição na mesma sequência.

⏱️ 25 min👥 trios🧩 laboratório

Roteiro

  1. Usem a sequência de referências 7,0,1,2,0,3,0,4,2,3 com 3 quadros.
  2. Calculem o número de faltas para FIFO e LRU à mão.
  3. Confiram no simulador de substituição de páginas.
  4. Tentem reproduzir a anomalia de Belady no FIFO aumentando os quadros.
FIFOrastreia a fila de páginas
LRUrastreia o uso recente
Conferentevalida no simulador
📤 Entrega: Contagem de faltas para FIFO e LRU + um exemplo de anomalia de Belady.
Teste seu conhecimento

Mini-quiz · Aula 9

20 questões sobre esta aula. Escolha e veja a explicação na hora.

0/20

📌 Resumo — leve isto para a prova