Você está na página 1de 8

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

CURSO DE ANLISE E DESENVOLVIMENTO DE SISTEMAS

SIDNEY TETSUO KATO


WILLIAM DE SOUZA COLODRO

SISTEMAS OPERACIONAIS
ALGORITMOS DE SUBSTITUIO DE PGINAS

Pato Branco, 2015

SIDNEY TETSUO KATO


WILLIAM DE SOUZA COLODRO

SISTEMAS OPERACIONAIS - PROCESSOS

Atividade do curso de Tecnologia em Anlise


e

Desenvolvimento

de

Sistemas

da

Universidade Tecnolgica Federal do Paran


UTFPR para composio de mdia final da
disciplina de Sistemas Operacionais

Pato Branco, 2015

Algoritmos de Substituio de Pginas

O maior problema na gerncia de memria virtual por paginao no decidir


quais pginas carregar para a memria principal, mas quais liberar. Quando um
processo necessita de uma nova pgina e no existem frames disponveis, o
sistema dever selecionar, dentre as diversas pginas alocadas na memria,
qual dever ser liberada pelo processo.
Os algoritmos de substituio de pginas tm o objetivo de selecionar os
frames que tenham as menores chances de serem referenciados em um futuro
prximo; caso contrrio, o frame poderia retornar diversas vezes para a
memria principal, gerando vrios page faults e acessos memria
secundria. A partir do princpio da localidade, a maioria dos algoritmos tenta
prever o comportamento futuro das aplicaes em funo do comportamento
passado, avaliando o nmero de vezes que uma pgina foi referenciada,
o momento em que foi carregada para a memria principal e o intervalo de
tempo da ltima referncia.
A melhor estratgia de substituio de pginas seria aquela que escolhesse um
frame que no fosse mais utilizado no futuro ou levasse mais tempo para ser
novamente referenciado. Porm, quanto mais sofisticado o algoritmo de
substituio deve tentar manter o working set dos processos na memria
principal e, ao mesmo tempo, no comprometer o desempenho do sistema.

Pato Branco, 2015

ALGORITMO ALEATRIO

Sem critrios de seleo;

Todas as pginas alocadas na memria principal com a mesma chance de


serem selecionadas, inclusive as frames que so referenciados;

Consome poucos recursos do sistema;

Baixa eficincia;

Raramente implementada.

FIFO (FIRST-IN-FIRST-OUT)

A pgina que primeiro foi utilizada ser a primeira a ser escolhida, ou seja, o
algoritmo seleciona a pgina que est a mais tempo na memria principal;

Pode ser implementado associando-se a cada pgina o momento em que


foi carregada para a memria ou utilizando-se uma estrutura de fila, onde as
pginas antigas esto no incio e as mais recentes no final;

No caso de uma pgina que seja constantemente referenciada, como o caso


de pginas que contm dados, o fator tempo torna-se irrelevante e o sistema
tem

que

referenciar

a mesma

pgina

diversas

vezes

ao

longo

do

processamento;

raramente implementado sem algum outro mecanismo que minimize o


problema

da

seleo

de

pginas

antigas

referenciadas.

Pato Branco, 2015

que

so

constantemente

LFU (LEAST-FREQUENTLY-USED)

Utiliza o frame menos referenciado;

Escolhida por ter o menor contador de referencias, evitando as pginas


frequentemente usadas;

Paginas recentes, possuem maiores chances de serem selecionadas, pois tem


um menor contador;

Pginas antigas com um alto nmero de referencias porm no mais usadas,


tambm possuem um alto acesso e no seriam selecionadas para substituio;

Raramente implementada;

Base para outros algoritmos.

LRU (LEAST-RECENTLY-USED)

Seleciona a pgina na memria principal que est h mais tempo sem ser
referenciada;

necessrio que cada pgina tenha associado o momento do ltimo acesso,


que deve ser atualizado a cada referncia a um frame;

efetuado uma busca por um frame que esteja h mais tempo sem ser
referenciado;

Pode ser implementado por lista encadeada, onde todas as pginas estariam
ordenadas pelo momento da ltima referncia;

Cada acesso memria exigiria um acesso lista;

Alto custo de implementao.

Pato Branco, 2015

NRU (LEAST-RECENTLY-USED)

Semelhante ao LFU;

Menos sofisticado;

Necessidade de bit de referncia (BR) que indica se a pgina foi usada


recentemente e est presente em cada tabela de pginas;

Quando a pagina carregada, o bit de referncia alterado pelo hardware


(BR=1) e periodicamente, o sistema altera o valor para (BR=0), e assim
conforme os bits de referncia, a pgina selecionada;

Analogamente, o algoritmo possui o bit de modificao, que aumenta a


eficincia;

Seleciona-se as paginas no modificadas e tambm no referenciadas,


evitando page out;

O sistema utiliza a substituio em pginas que no foram referenciadas,


porm modificadas.

FIFO COM BUFFER DE PGINAS

combina uma lista de pginas alocadas (LPA) com uma lista de pginas livres
(LPL);

A LPA organiza todas as pginas que esto sendo utilizadas na memria


principal, podendo ser implementada como uma lista nica para todos os
processos ou uma lista individual para cada processo;

Pato Branco, 2015

Independente da poltica utilizada, a LPA organiza as pginas alocadas h


mais tempo na memria no incio da lista, enquanto as pginas mais recentes
no seu final. Da mesma forma, a LPL organiza todos os frames livres da
memria principal, sendo que as pginas livres h mais tempo esto no incio e
as mais recentes no final;

Sempre que um processo necessita alocar uma nova pgina, o sistema utiliza a
primeira pgina da LPL, colocando-a no final da LPA;

Caso o processo tenha que liberar uma pgina, o mecanismo de substituio


seleciona o frame em uso h mais tempo na memria, isto , o primeiro
da LPA, colocando-o no final da LPL;

Importante notar que a pgina selecionada e que entrou na LPL continua


disponvel na memria principal por um determinado intervalo de tempo Caso
esta pgina seja novamente referenciada e ainda no tenha sido alocada,
basta retir-la da LPL e devolv-la ao processo Nesse caso, a LPL funciona
como um buffer de pginas, evitando o acesso memria secundria;

Por outro lado, se a pgina no for mais referenciada, com o passar do tempo
ir chegar ao incio da LPL, quando ser utilizada para um outro processo;

Caso a pgina seja posteriormente referenciada, o sistema ter que carreg-la


novamente da memria secundria;

O buffer de pginas permite criar um algoritmo de substituio de pginas


simples e eficiente, sem o custo de outras implementaes;

O sistema operacional Mach utiliza o esquema de buffer de pginas nico,


enquanto o OpenVMS e o Windows 2000 utilizam dois buffers: um para
pginas livres (free page list) e outro para pginas modificadas (modified page
list).

Pato Branco, 2015

FIFO CIRCULAR

utiliza como base o FIFO, porm as pginas alocadas na memria esto em


uma estrutura de lista circular, semelhante a um relgio;

Este algoritmo implementado, com pequenas variaes na maioria dos


sistemas Unix;

Para a implementao do algoritmo existe um ponteiro que guarda a posio


da pgina mais antiga na lista;

Cada pgina possui associado um bit de referncia, indicando se a pgina foi


recentemente referenciada;

Quando necessrio substituir uma pgina, o sistema verifica se o frame


apontado tem o bit de referncia desligado (BR = 0). Nesse caso, a pgina
selecionada para descarte, pois, alm de ser a mais antiga, no foi utilizada
recentemente. Por outro lado, se a pgina apontada tem o bit de referncia
ligado (BR = 1), o bit desligado e o ponteiro incrementado, pois, apesar
de ser a pgina mais antiga, foi utilizada recentemente;

O processo se repete at ser encontrada uma pgina com bit de referncia


igual a zero;

Neste algoritmo, existe a possibilidade de todos os frames possurem o bit de


referncia ligado. Nesse caso, o ponteiro percorrer toda a lista, desligando o
bit de referncia de cada pgina. Ao final, a pgina mais antiga selecionada;

A utilizao do bit de referncia permite conceder a cada pgina uma segunda


chance antes de ser substituda;

possvel

melhorar

eficincia

do

algoritmo

utilizando

bit

de

modificao, juntamente com o bit de referncia, como apresentado no


esquema NRU.

Pato Branco, 2015