Você está na página 1de 2

Algoritmo de substituio de pginas LRU

O LRU (Least Recently Used) um algoritmo de substituio de pgina que apresenta um bom desempenho substituindo a pgina menos recentemente usada. Esta poltica foi definida baseada na seguinte observao: se a pgina est sendo intensamente referenciada pelas instrues muito provvel que ela seja novamente referenciada pelas instrues seguintes e, de modo oposto, aquelas que no foram acessadas nas ltimas instrues tambm provvel que no sejam acessadas nas prximas. Apesar de o LRU apresentar um bom desempenho ele tambm possui algumas deficincias quando o padro de acesso sequencial (em estruturas de dados do tipo vetor, lista, rvore), dentro de loops, etc. Diante dessas deficincias foram propostas algumas variaes do LRU, dentre eles destacamos o LRU-K. Este algoritmo no substitui aquela que foi referenciada h mais tempo e sim quando ocorreu seu k-ltimo acesso. Por exemplo, LRU-2 substituir a pgina que teve seu penltimo acesso feito h mais tempo e LRU-3 observar o antepenltimo e assim por diante. A implementao do LRU tambm pode ser feita atravs de uma lista, mantendo as pginas mais referenciadas no incio (cabea) e a menos referenciadas no final da lista. Portanto, ao substituir retira-se a pgina que est no final da lista. O maior problema com esta organizao que a lista deve ser atualizada a cada nova referncia efetuada sobre as pginas, o que torna alto o custo dessa manuteno.

Ideia:
Pginas que foram muito usadas nas ltimas instrues sero novamente nas prximas; Troca pgina que permaneceu em desuso pelo maior tempo. provavelmente usadas

Alto custo:
Deve-se manter lista encadeada com todas as pginas que esto na memria, com as mais recentemente utilizadas no incio e as menos utilizadas no final; A lista deve ser atualizada a cada referncia da memria;

Algoritmo de substituio de pginas Working Set


No algoritmo Working set um processo s executado quando todas as pginas necessrias no tempo t esto carregadas na memria, a ideia 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. Objetivo principal: reduzir a falta de pginas. 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. Pr-paginao 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 moldura livre.

o o

o o

Problemas: Paginao exigem operaes de E/S (que deve ser evitado) quando um processo faz referncia a uma pgina que no se encontra na memria; O SO deve se preocupar em ter um certo nmero de pginas na memria que reduza ao mximo a taxa de paginao dos processos e no prejudique os demais processos que desejam acesso a memria. Observaes: Quando um programa comea a ser executado, percebe-se uma elevada taxa de page faults (pginas que no se encontram na memria), que se estabiliza com o decorrer de sua execuo. Localidade a tendncia que existe em um programa de fazer referncias a posies de memria de forma quase uniforme, ou seja, instrues prximas. A partir da observao da localidade Denning formulou o modelo de working set.

Algoritmo de substituio de pginas WSClock


A estrutura de dados necessria uma lista circular de molduras de pginas (assim como no algoritmo do relgio). Inicialmente, essa lista circular encontra-se vazia. Quando a primeira pgina carregada, ela inserida nessa lista. medida que mais pginas so carregadas na memria, elas tambm so inseridas na lista para formar um anel. Cada entrada dessa lista contm o campo Instante do ltimo uso, do algoritmo do conjunto de trabalho bsico, bem como o bit R e o bit M. Assim como ocorre o algoritmo do relgio, a cada falta de pgina, a pgina que estiver sendo apontada ser examinada primeiro. Se seu bit R for 1, a pgina foi referenciada durante a interrupo do relgio atual e, assim, no ser candidata remoo da memria. O bit R , ento, colocado em zero, o ponteiro avana para a pgina seguinte e o algoritmo repetido para essa nova pgina. Em princpio, todas as pginas podem ser escalonadas para E/S em disco a cada volta do relgio. Para reduzir o trfego de disco, pode-se estabelecer um limite, permitindo que um nmero mximo de n pginas sejam reescritas em disco. Uma vez alcanado esse limite, no mais sero escalonadas novas escritas em disco. O que acontece se o ponteiro deu uma volta completa retornando ao seu ponto de partida? Existem duas possibilidades a serem consideradas: 1. Pelo menos uma escrita foi escalonada. 2. Nenhuma escrita foi escalonada. No primeiro caso o ponteiro simplesmente continua a se mover, procurando por uma pgina limpa. Visto que uma ou mais escritas em disco foram escalonadas, uma dessas escritas acabar por se controlar, e sua pgina ser, ento, marcada como limpa. A primeira pgina limpa encontrada removida. Essa pgina no necessariamente a primeira escrita escalonada, pois o driver de disco pode reordenar as escritas em disco para otimizar o desempenho. No segundo caso, todas as pginas pertencem ao conjunto de trabalho; caso contrrio, pelo menos uma escrita em disco teria sido escalonada. Em razo da falta de informaes adicionais, a coisa mais simples a fazer reivindicar qualquer pgina limpa e us-la. A localizao de uma pgina limpa pode ser registrada durante a varredura. Se nenhuma pgina limpa existir, ento a pgina atual ser escolhida e reescrita em disco.