Algoritmos de Substituição de Páginas: FIFO, Clock, NRU, LRU, NFU, Aging e WSCLOCK

ComputaçãoAtualizado em 3,17 KB

Resumo

O documento apresenta os principais algoritmos de substituição de páginas usados em sistemas operacionais para gerir a memória virtual. Descreve o funcionamento do FIFO, do Relógio (Clock), do NRU, do LRU, do NFU, do Envelhecimento (Aging) e do WSCLOCK, indicando os bits e estruturas que cada um utiliza. O estudante fica a perceber como cada algoritmo escolhe a moldura a remover e quais são as suas vantagens e limitações.

Pontos-chave

  • FIFO remove a moldura de página que está no início da fila, pois foi a primeira a entrar.
  • O algoritmo do Relógio usa o bit R e um ponteiro sobre uma lista circular: molduras com R=1 recebem uma segunda oportunidade (R passa a 0) até encontrar uma com R=0.
  • O NRU classifica as molduras pelos bits R e M e remove uma moldura da menor classe, escolhida aleatoriamente em caso de empate; tem baixa complexidade.
  • O LRU remove a página menos recentemente usada, mas exige atualizar a lista a cada referência à memória, o que pode degradar o desempenho.
  • No NFU e no Aging, cada moldura tem um contador; no Aging os contadores são deslocados 1 bit para a direita a cada interrupção de relógio e a moldura com menor contador é substituída.
  • O WSCLOCK combina o algoritmo do Relógio com o conceito de conjunto de trabalho, usando a idade da página (tempo virtual atual menos instante do último uso) comparada com T e o bit M.

Teste-se

Algoritmos de Substituição de Páginas

FIFO (First-In, First-Out)

É mantida uma lista ordenada de molduras de página (MP). A MP que será removida, caso necessário, é a que estiver no início da fila. A nova página entrará no fim da lista.

Algoritmo do Relógio (Clock)

Utiliza o bit R (Referência) como critério para a substituição da moldura de página.

  • É mantida uma lista circular e um ponteiro é usado para a próxima moldura candidata à substituição.
  • Se a moldura apontada estiver com o bit R igual a 1, o bit é alterado para 0 e o ponteiro avança para a próxima moldura até que encontre uma moldura com o bit R igual a 0.

NRU (Not Recently Used)

  • Utiliza os bits R (Referência) e M (Modificado) da tabela de páginas.
  • Esquema de Classe: Quando for realizar uma substituição, inspecionam-se os bits R e M, e remove-se a moldura que estiver na menor classe.
    • Se houver mais de uma moldura na menor classe, a remoção é feita de forma aleatória.
  • Vantagem: Baixa complexidade e implementação fácil.

LRU (Least Recently Used)

Mantém uma lista encadeada de todas as molduras, onde as MPs usadas recentemente são inseridas no início da lista e a menos usada recentemente fica no fim da lista.

  • Remove sempre a MP do fim da lista.
  • Problema: Necessita atualizar a lista a cada referência à memória, o que pode resultar em desempenho ruim.

NFU (Not Frequently Used)

Utiliza o bit R (Referência) da Tabela de Páginas.

  • Mantém um contador associado a cada MP, inicialmente em 0.
  • A cada interrupção de relógio, o Sistema Operacional (SO) percorre todas as MPs somando o valor do bit R no contador de cada moldura. Após somar, o bit R é zerado.
  • Substitui a moldura com o menor contador. Em caso de empate, a remoção é feita de forma aleatória.

Algoritmo de Envelhecimento (Aging)

A cada interrupção de relógio, os contadores são deslocados 1 bit para a direita. O bit R de cada MP é adicionado ao bit mais à esquerda do contador correspondente.

  • Quando ocorre uma substituição, a MP que tiver o menor contador é substituída.

WSCLOCK (Working Set Clock)

Baseado no algoritmo do Relógio.

  • Quando ocorre uma falta de página, a moldura de página que estiver sendo apontada é examinada primeiro.
  • Se R=1, ela foi referenciada antes da interrupção de relógio atual, então não é candidata à remoção.
    • Zera o bit R, copia o tempo virtual atual para o instante do último uso e avança o ponteiro.
  • Se R=0:
    • idade = tempo virtual atual - instante do último uso
    • Se idade > T e M = 0, remove a MP.
    • Se idade > T e M = 1, escalona a escrita no disco da moldura de página e avança o ponteiro.
  • Se o ponteiro deu uma volta completa:
    • Se pelo menos uma escrita foi escalonada, o ponteiro irá encontrar uma MP com M = 0.

Baixar

PDF Word HTML

Perguntas frequentes

Qual é a diferença entre o algoritmo do Relógio e o FIFO?

O FIFO remove sempre a página que está há mais tempo na memória, sem considerar o seu uso. O algoritmo do Relógio usa o bit R para dar uma segunda oportunidade às páginas referenciadas recentemente, percorrendo a lista circular com um ponteiro.

Qual é a principal desvantagem do LRU?

O LRU necessita de atualizar a lista encadeada a cada referência à memória, o que pode resultar em desempenho ruim.

Qual é a vantagem do NRU?

O NRU tem baixa complexidade e uma implementação fácil, pois utiliza apenas os bits R e M da tabela de páginas.

Teste-se

Cartões de revisão

Clique em um cartão para ver a resposta.

Teste

1. Qual algoritmo remove sempre a moldura de página que está no início da fila?
2. No algoritmo do Relógio, o que acontece quando a moldura apontada tem o bit R igual a 1?
3. Que bits o algoritmo NRU utiliza para classificar as molduras?
4. Qual é o problema principal do algoritmo LRU?
5. No algoritmo de Envelhecimento (Aging), o que acontece aos contadores a cada interrupção de relógio?
6. Qual moldura o Aging substitui quando ocorre uma substituição?
7. No NFU, como são resolvidos os empates entre molduras com o mesmo contador?
8. No WSCLOCK, quando uma moldura com R=0 tem idade maior que T e M=1, o que acontece?

Perguntas geradas com IA a partir do documento: verifique as respostas com o texto.