Vous êtes sur la page 1sur 28

Algoritmos de Substituio

de Pginas
Igor Gustavo Hoelscher
Renan Arend
Rogrio Corra Medeiros
2 Introduo

No momento em que ocorre uma page fault o sistema operacional


precisa escolher uma pgina a ser removida da memria a fim de liberar
espao para que uma nova pgina seja carregada.
Outros problemas na computao so anlogos esse: como por
exemplo os blocos carregados na memria cache de um computador ou
as pginas armazenadas na cache de um servidor web.
O algoritmo timo que resolveria esse problema precisa saber quando as
pginas sero referenciadas novamente, o que implica em um sistema
no causal e impossvel de se realizar.

quarta-feira, 12
de maro de
2013
3 O Algoritmo NRU
NRU (Not Recently Used no usada recentemente).
Usa dois bits de status: bit R (referenciado) e bit M (modificado).
Quando o processo inicia, suas pginas ainda no esto presentes na
memria. Assim que uma delas referenciada, o bit R colocado em 1.
Em seguida, se esta pgina modificada, o bit M colocado em 1.
Ao ocorrer uma page fault o sistema operacional separa todas as pginas
em quatro categorias:
Classe 0: no referenciada, no modificada.
Classe 1: no referenciada, modificada.
Classe 2: referenciada, no modificada.
Classe 3: referenciada, modificada.

quarta-feira, 12
de maro de
2013
4 O Algoritmo NRU

Como uma pgina pode ter sido modificada mas no referenciada


(Classe 1)? Por que essa pgina de uma classe de ordem menor a uma
pgina referenciada, mas no modificada?

O NRU ento remove uma pgina aleatria da classe mais baixa que no
esteja vazia.
Entre as vantagens est a baixa complexidade de entendimento e
implementao e a boa aproximao para o algoritmo timo.

quarta-feira, 12
de maro de
2013
5 O Algoritmo Segunda Chance

FIFO + bit R.
Inspeciona o bit R da pgina mais velha.
Se for 0, ela velha e no foi usada recentemente: trocada.
Se for 1, foi utilizada recentemente: o bit feito 0 a pgina colocada no
final da fila, seu tempo de carga modificado fazendo parecer que
recm chegou na memria (recebe uma segunda chance).
A busca continua.

quarta-feira, 12
de maro de
2013
6 O Algoritmo Segunda Chance

Ocorre page fault no tempo 20 e Ra = 0.


A removido e novo elemento inserido no final da fila.

quarta-feira, 12
de maro de
2013
7 O Algoritmo Segunda Chance

Ocorre page fault no tempo 20 e Ra = 1.


A tratado como mais recente pagina carregada, recebendo uma
segunda chance (Ra = 0).

quarta-feira, 12
de maro de
2013
8 O Algoritmo do Relgio

O algoritmo segunda chance ineficaz. Visando melhorar a tcnica,


surgiu o algoritmo de paginao do relgio.
A nica mudana se deve ao fato da lista estar em formato circular.
Assim, quando houver page fault, a pgina indicada pelo ponteiro
examinada. Se o bit R estiver em 0, ela substituda e o ponteiro avana.
Se for 1, o bit zerado e o ponteiro avana fazendo uma nova busca.
Quando chega ao fim sem encontrar bit R = 0, o ponteiro retorna ao incio,
e essa pgina ento eliminada.

quarta-feira, 12
de maro de
2013
9 O Algoritmo do Relgio

Quando ocorre uma falta de


pgina, a pgina indicada pelo
ponteiro inspecionada. A ao
executada depende do bit R.
R = 0 : Substituir pgina
R = 1 : Zerar e avanar

quarta-feira, 12
de maro de
2013
10 O Algoritmo LRU e sua simulao em
software
O LRU (Least Recently Used - usada menos recentemente) parte do
princpio que as pginas usadas com mais frequncia nas ultimas
execues provavelmente sero muito utilizadas novamente.
Desse modo, quando houver page fault o algoritmo elimina a pgina no
utilizada pelo perodo de tempo mais longo.
Necessita que a lista seja atualizada para cada execuo, alm do que,
uma pgina ser buscada, se encontrada ela ser excluda e posicionada
na frente da lista. Um custo de operao alto, mesmo em hardware.

quarta-feira, 12
de maro de
2013
11 O Algoritmo LRU e sua simulao em
software
H outros modos de se implementar em hardware.
Entre eles, o mais simples a construo de um contador, que
incrementado a cada instruo. A pgina referenciada necessita de um
novo campo, que recebe o valor do contador no momento de sua
referncia. Quando houver page fault, o hardware examina as pginas
em busca do menor valor de contador, a pgina usada menos
recentemente.
Outro modo seria o auxlio de uma matrix n x n (onde n o nmero de
molduras de pgina). Quando uma pgina k for referenciada, as posies
da linha k recebem 1 e da coluna k recebem 0.

quarta-feira, 12
de maro de
2013
12 O Algoritmo LRU e sua simulao em
software

quarta-feira, 12
String de referncias: 0 1 2 3 2 1 0 3 2 3 de maro de
2013
13 O Algoritmo LRU e sua simulao em
software
No se encontram muitos computadores com hardwares auxiliares como
os que eram necessrios nos dois exemplos.
Desse modo, uma soluo em software necessria. Entre elas est o NFU
(Not Frequently Used). Esse algoritmo requer contadores em software,
cada um associado a uma pgina e iniciados com 0.
Em cada interrupo, o valor do bit R adicionado ao contador. Quando
houver page fault, a pgina com menor valor em contador ser
eliminada.
No entanto existem problemas...
Uma pequena modificao (gerando o algoritmo conhecido como
Algoritmo de Envelhecimento) pode aproximar a simulao do algoritmo
LRU.
quarta-feira, 12
de maro de
2013
14 O Algoritmo LRU e sua simulao em
software

quarta-feira, 12
de maro de
2013
15 O Algoritmo LRU e sua simulao em
software
O Algoritmo de Envelhecimento simula exatamente o comportamento do
algoritmo de paginao LRU?

Se notarmos a execuo anterior, deve se escolher entre a pgina 3 e a


pgina 5 para eliminao. No entanto no temos como decidir qual das
duas foi referenciada primeiro, j que a contagem acontece somente no
final de cada ciclo.
Outra diferena que o algoritmo de envelhecimento tem contadores
finitos (no exemplo, de 8 bits). Assim, quando dois contadores estiverem
zerados no momento no momento de uma page fault, temos que eliminar
aleatoriamente uma delas.

quarta-feira, 12
de maro de
2013
Algoritmo Working Set (Conjunto de
16 trabalho)

Paginao por demanda: pginas so carregadas na memria


somente quando so necessrias;
Pr-paginao Working set
Conjunto de pginas que um processo est efetivamente utilizando
em um determinado tempo t;
Objetivo principal: reduzir a falta de pginas
Um processo s executado quando todas as pginas
necessrias no tempo t esto carregadas na memria;

quarta-feira, 12
de maro de
2013
Algoritmo Working Set (Conjunto de
17 trabalho)

At ento, gerar page faults.


A idia determinar o working set de cada processo e certificar-se de t-
lo na memria antes de rodar o processo.
Modelo de Conjunto de Trabalho ou pr-paginao working set w(k,t).
Conjunto consistindo, em um dado instante t, de todas as pginas usadas
pelas k referncias mais recentes memria.

quarta-feira, 12
de maro de
2013
Algoritmo Working Set (Conjunto de
18 trabalho)

O working set varia lentamente com o tempo.


Podemos estimar o nmero de pginas necessrias quando o programa
trazido do disco com base em seu working set de quando foi interrompido.
Prpaginao: consiste em carregar essas pginas antes de rodar
novamente o processo.
Implementao:
O SO precisa manter registro de que pginas esto no working set.
Quando ocorrer um page fault, encontre uma pgina fora do working
set e a remova, caso no haja mais nenhuma pgina livre.

quarta-feira, 12
de maro de
2013
Algoritmo Working Set (Conjunto de
19 trabalho)

Implementao:
Contar as k referncias mais recentes custos.
Para simplificar o working set pode ser visto como o conjunto de
pginas que o processo referenciou durante os ltimos t segundos de
sua execuo.
Conta o tempo individual do processo, descontando escalonamento
seu tempo virtual corrente.
Utiliza bit R e o tempo de relgio (tempo virtual) da ltima vez que a
pgina foi referenciada.

quarta-feira, 12
de maro de
2013
Algoritmo Working Set(Conjunto de
20 trabalho)

Algoritmo:
Pressupostos:
O hardware define o bit R. Em cada ciclo do clock, o bit de referncia
limpo.
O tempo do working set se estende por vrios ciclos do clock.
Em cada page fault, a tabela de pginas inteira buscada.
medida que cada entrada processada, examine R.
Se 1, escreva o tempo virtual corrente no campo Tempo do ltimo Uso
(TLU), indicando que a pgina estava em uso no instante da page fault, ou
seja, estava no working set no candidata

quarta-feira, 12
de maro de
2013
Algoritmo Working Set (Conjunto de
21 trabalho)

Algoritmo:
Em cada page fault, a tabela de pginas inteira buscada
medida que cada entrada processada, examine R
Se R=0, a pgina no foi referenciada no ciclo atual, e pode ser uma candidata
Nesse caso, se sua idade for maior que o intervalo t do working set, ela no est
nele, e pode ser removida
A busca continua atualizando as demais entradas

quarta-feira, 12
de maro de
2013
Algoritmo Working Set (Conjunto de
22 trabalho)

Se, contudo, a idade for menor que t, a pgina poupada.


Contudo, a pgina com maior idade marcada.
Se nenhum candidato for encontrado (todas as pginas esto no working
set), substitua a pgina mais velha, dentre as com R=0.

quarta-feira, 12
de maro de
2013
Algoritmo Working Set (Conjunto de
23 trabalho)

quarta-feira, 12
de maro de
2013
24 O Algoritmo WSClock

Relgio + Working Set.


Amplamente usado, devido sua simplicidade e performance
Utiliza lista circular de pginas;
Inicialmente vazia, medida que mais pginas so carregadas, entram na
lista, formando um anel;
Cada entrada contm o tempo de ltimo uso, alm dos bits R e M.

quarta-feira, 12
de maro de
2013
25 O Algoritmo WSClock
A cada page fault, a pgina da cabea examinada primeiro.
Se R=1:
A pgina foi usada durante o ciclo de clock corrente e no candidata a
remoo. R = 0 e avana a cabea prxima pgina, repetindo o
algoritmo para esta pgina.

quarta-feira, 12
de maro de
2013
26 O Algoritmo WSClock
Se R=0:
Se a idade for maior que o tamanho do working set t e a pgina estiver
limpa (M=0) no est no working set e uma cpia vlida existe no disco.
A pgina substituda e a cabea da lista avana.

quarta-feira, 12
de maro de
2013
27 O Algoritmo WSClock
Se, contudo, a pgina estiver suja (no possui cpia vlida no disco)?
Agenda uma escrita ao disco, evitando troca de processo;
Avana a cabea da lista, prosseguindo da pgina seguinte.

Se a cabea der uma volta completa na lista sem substituir?


E pelo menos uma escrita no disco foi agendada:
A cabea continua se movendo, em busca de uma pgina limpa
Em algum momento a escrita agendada ser executada, marcando a pgina como
limpa

E nenhuma escrita foi agendada:


Todas as pginas esto no working set
Na falta de informao adicional, substitua qualquer pgina limpa
Se nenhuma pgina limpa existir, escolha qualquer outra e a escreva no disco
quarta-feira, 12
de maro de
2013
28 Referncias

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. Pearson Prentice


Hall, 3 Edio, 2010.
ROMAN, Norton T. MORANDINI, Marcelo. UEYAMA, J.
Gerenciamento de Memria Virtual: Algoritmos de Paginao. Disponvel
em: http://wiki.icmc.usp.br/images/d/dc/Aula12.pdf.
BRANDO, Humberto. Gerncia de Memria: Algoritmos de Substituio
de Pgina. Disponvel em: http://www.dcc.ufmg.br/~humberto/unifal/.

quarta-feira, 12
de maro de
2013

Vous aimerez peut-être aussi