Gerência de Memória Algoritmos de Substituição de Páginas Carlos Gustavo A. da Rocha
Memória Virtual Processo A 60-64kb 56-60kb 52-56kb 48-52kb 44-48kb 40-44kb 36-40kb 32-36kb - A executa: ADD REG, 37000 - A página que contém este endereço virtual não está na RAM (page fault) - Para que esta página possa ser colocada na RAM outra terá que ser retirada Memória RAM Memória Virtual Processo B 60-64kb 56-60kb 52-56kb 48-52kb 44-48kb 40-44kb 36-40kb 32-36kb
Memória Virtual Processo A 60-64kb 56-60kb 52-56kb 48-52kb 44-48kb 40-44kb 36-40kb 32-36kb - Algum algoritmo deve ser executado para escolher a página que irá sair da RAM. Neste caso foi escolhida a página que vai de 48-52Kb Memória RAM Memória Virtual Processo B 60-64kb 56-60kb 52-56kb 48-52kb 44-48kb 40-44kb 36-40kb 32-36kb
Algoritmos de substituição de páginas Quando ocorre uma falta de página, e a memória RAM já está cheia o SO deve escolher uma página para ser removida da memória E possivelmente copiada para o SWAP A solução mais simples seria escolher uma página de forma aleatória e retira-la da memória Na prática SOs escolhem a página a ser retirada executando um algoritmo Este algoritmo é um dos pontos centrais de design do SO sendo essencial para sua performance
Algoritmo not recentely used - NRU A MMU, juntamente com o SO, armazena informações de status, que mostram a quanto tempo cada página não é acessada Periodicamente esta informação é apagada, e todas as páginas voltam a um status de não acessada Quando for necessário retirar uma página da memória RAM, será escolhida uma que não é acessada a algum tempo
Algoritmo Least recentely used - LRU Semelhante ao NRU, mas neste caso a informação de a quanto tempo a página não é acessada nunca é apagada Quando for necessário retirar uma página da memória RAM, será escolhida a que não é acessada a mais tempo
Algoritmo first in, first out - FIFO Sua ideia de funcionamento é semelhante ao algoritmo NRU, contudo, neste caso a MMU armazena apenas a informação de a quanto tempo cada página está na memória RAM Sem levar em consideração se ela vem sendo acessada ou modificada Quando for necessário retirar uma página da memória RAM, será escolhida aquela que lá estiver a mais tempo
Algoritmo Second Chance Combina as funcionalidades do NRU e FIFO Se uma página está há muito tempo na RAM, e também não tem sido acessada, ela pode ser retirada Se uma página está há muito tempo na RAM, mas tem sido acessada, ela é mantida na RAM, e colocada no final da fila FIFO Desta forma uma página que está há muito tempo na memória, mas também é muito usada, não será retirada da RAM
Algoritmo Clock Semelhante ao Second Chance mas as informações sobre as páginas são mantidas em uma lista circular - A página apontada é analisada: - Se foi acessada recentemente, ela será mantida na RAM e o Ponteiro avança para a próxima - Senão, ela será retirada da RAM
Outros algoritmos Estes são apenas alguns exemplos de algoritmos que podem ser utilizados Na prática existem vários outros, alguns bastantes básicos como os aqui apresentados, outros mais avançados ou especializados para um SO, processador e MMU específicos