Você está na página 1de 7

Sistemas Operacionais

AULA 15 - Algoritmos de Substituio de Pginas


Os algoritmos de substituio de pginas so polticas definidas para escolher qual(is) pgina(s) da memria dar lugar a pgina que foi solicitada e que precisa ser carregada. Isso necessrio quando no h espao disponvel para armazenar a nova pgina. Devemos ressaltar que se a pgina a ser removida sofreu alteraes enquanto esteve na memria, a cpia virtual existente em disco dever ser atualizada. Por outro lado, se a pgina no foi modificada significa que sua cpia est atualizada e, portanto, no necessrio reescrev-la. Polticas de substituio de pginas devem ser utilizadas em sistemas que fazem uso de memria virtual paginada com o objetivo de melhorar o desempenho do sistema computacional. Os algoritmos de substituio de pginas podem ser classificados, basicamente, em: algoritmos com espao fixo e algoritmos com espao varivel. A diferena entre estes dois tipos de algoritmos que o de espao fixo trabalha sobre uma rea de memria sempre constante, enquanto que os de espao varivel podem modificar o tamanho da memria alocada dinamicamente [CAS03]. Algoritmo de substituio de pginas FIFO O FIFO (First-in, First-out) um algoritmo de substituio de pginas de baixo custo e de fcil implementao que consiste em substituir a pgina que foi carregada h mais tempo na memria (a primeira pgina a entrar a primeira a sair). Esta escolha no leva em considerao se a pgina est sendo muito utilizada ou no, o que no muito adequado pois pode prejudicar o desempenho do sistema. Por este motivo, o FIFO apresenta uma deficincia denominada anomalia de Belady: a quantidade de falta de pginas pode aumentar quando o tamanho da memria tambm aumenta. Por estas razes, o algoritmo FIFO puro muito pouco utilizado. Contudo, sua principal vantagem a facilidade de implementao: uma lista de pginas ordenada pela idade. Dessa forma, na ocorrncia de uma falta de pgina a primeira pgina da lista ser substituda e a nova ser acrescentada ao final da lista. 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 Prof. Dr. Jean M. Laine 1

Sistemas Operacionais algumas deficincias [CAS03] 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. Algoritmo de substituio de pginas timo O algoritmo timo, proposto por Belady em 1966, o que apresenta o melhor desempenho computacional e o que minimiza o nmero de faltas de pginas. No entanto, sua implementao praticamente impossvel. A idia do algoritmo retirar da memria a pgina que vai demorar mais tempo para ser referenciada novamente. Para isso, o algoritmo precisaria saber, antecipadamente, todos os acessos memria realizados pela aplicao, o que impossvel em um caso real. Por estes motivos, o algoritmo timo s utilizado em simulaes para se estabelecer o valor timo e analisar a eficincia de outras propostas elaboradas. Algoritmo de substituio de pginas MRU O algoritmo MRU (Most Recently Used) faz a substituio da ltima pgina acessada. Este algoritmo tambm apresenta algumas variaes, semelhante ao LRU. Por exemplo, o MRU-n escolhe a n-ltima pgina acessada para ser substituda. Dessa forma, possvel explorar com mais eficincia o princpio de localidade temporal apresentada pelos acessos. Algoritmo de substituio de pginas CLOCK Este algoritmo mantm todas as pginas em uma lista circular (em forma de relgio). A ordem mantida segue a seqncia em que elas foram carregadas em memria. Alm disso, adicionado um bit de uso que indica se a pgina foi referenciada novamente depois de ter sido carregada. Ao precisar substituir uma pgina o algoritmo verifica se a pgina mais antiga est com o bit zerado (o que significa que a pgina no foi mais referenciada) para ser substituda. Se ela no estiver o bit zerado e a prxima pgina da fila mais antiga ser verificada. Esse processo continua at que uma pgina antiga com o bit zerado seja encontrada para ser substituda. Prof. Dr. Jean M. Laine 2

Sistemas Operacionais Algoritmo de substituio de pginas NRU O algoritmo NRU (Not Recently Used) procura por pginas que no foram referenciadas nos ltimos acessos para serem substitudas. Tal informao mantida atravs de um bit. Este algoritmo tambm verifica, atravs de um bit de modificao, se a pgina teve seu contedo alterado durante sua permanncia em memria. Esta informao tambm vai ajudar a direcionar a escolha da pgina. As substituies das pginas seguem a seguinte prioridade: pginas no referenciadas e no modificadas, pginas no referenciadas, pginas no modificadas e pginas referenciadas e modificadas. Algoritmo de substituio de pginas LFU O LFU (Least Frequently Used) escolhe a pgina que foi menos acessada dentre todas as que esto carregas em memria. Para isso, mantido um contador de acessos associado a cada pgina (hit) para que se possa realizar esta verificao. Esta informao zerada cada vez que a pgina deixa a memria. Portanto, o problema desse algoritmo que ele prejudica as pginas recm-carregadas, uma vez que por estarem com o contador de acessos zerado a probabilidade de serem substitudas maior. Qual uma possvel soluo para este problema? (Estabelecer um tempo de carncia) S pginas fora desse tempo que podem ser substitudas. Tal estratgia deu origem ao algoritmo FBR (Frequency-Based Replacement). Algoritmo de substituio de pginas MFU O MFU (Most Frequently Used) substitui a pgina que tem sido mais referenciada, portanto, o oposto do LFU. O controle tambm feito atravs de contadores de acesso. O maior problema deste algoritmo que ele ignora o princpio de localidade temporal. Algoritmo de substituio de pginas WS O algoritmo WS (Working Set) possui a mesma poltica do LRU. No entanto, este algoritmo no realiza apenas a substituio de pginas ele tambm estabelece um tempo mximo que cada pgina pode permanecer ativa na memria. Assim, toda pgina que tem seu tempo de permanncia esgotado ela retirada da memria. Portanto, o nmero de pginas ativas varivel. O WS assegura que as pginas pertencentes ao working set processo permanecero ativas em memria. Os algoritmos apresentados so alguns dos disponveis na literatura. Outras implementaes ou variaes dos destacados aqui podem ser encontradas tambm [CAS03].

Prof. Dr. Jean M. Laine

Sistemas Operacionais

Exerccios
1. Considere a seguinte string de referncia de pgina: 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 Simule a funcionalidade dos algoritmos listados a seguir e diga quantas faltas de pgina ocorrem em cada um, considerando uma memria com trs pginas. a. FIFO

Nmero de faltas de pginas geradas: _____

b. LRU

Nmero de faltas de pginas geradas: _____

c. TIMO

Nmero de faltas de pginas geradas: _____

d. MFU

Nmero de faltas de pginas geradas: _____ Prof. Dr. Jean M. Laine 4

Sistemas Operacionais e. LFU

Nmero de faltas de pginas geradas: _____

2. Considere a seguinte string de referncia de pgina: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 Simule a funcionalidade dos algoritmos listados a seguir e diga quantas faltas de pgina ocorrem em cada um, considerando uma memria com 4 pginas. a. FIFO

Nmero de faltas de pginas geradas: _____

b. LRU

Nmero de faltas de pginas geradas: _____ c. TIMO

Nmero de faltas de pginas geradas: _____ Prof. Dr. Jean M. Laine 5

Sistemas Operacionais d. MRU

Nmero de faltas de pginas geradas: _____

e. LFU

Nmero de faltas de pginas geradas: _____

f. MFU

Nmero de faltas de pginas geradas: _____

3. Faa uma pesquisa sobre algoritmos de substituio de pginas adaptativos. Cite o nome dos algoritmos encontrados e explique, resumidamente, a idia de cada um deles.

4. possvel afirmar que para um conjunto de aplicaes X o algoritmo de substituio de pginas A seja mais adequado e para um conjunto de aplicaes Y o algoritmo de substituio de pginas B seja mais eficiente? Isso verdade? Sim ou no? Justifique.

5. Qual o objetivo fundamental dos algoritmos de substituio de pginas?

Prof. Dr. Jean M. Laine

Sistemas Operacionais

6. Explique como funciona as polticas: FIFO, TIMA, LRU e LFU.

Bibliografia
TANENBAUM, A. S. Sistemas Operacionais Modernos. Prentice Hall, 2 Edio, 2003. (Cap. 4)

Referncia Bibliogrfica
[CAS03] CASSETTARI, H. H. Anlise da Localidade de Programas e Desenvolvimento de Algoritmos Adaptativos para Substituio de Pginas. Qualificao de Mestrado. Escola Politcnica da Universidade de So Paulo. Departamento de Engenharia de Computao e Sistemas Digitais. 2003.

Prof. Dr. Jean M. Laine

Você também pode gostar