Vous êtes sur la page 1sur 3

ALGORITMOS DE SUBSTITUIO DE PGINAS Quando existe o problema de faltas de pginas, o sistema operacional precisa remover uma pgina da memria

a fim de liberar espao para uma nova. Se a pgina que ser removida tiver sido modificada, ela precisara ser escrita novamente no disco com o objetivo de atualizar a cpia virtual l existente. Agora, se a pgina no tiver sido modificada, esta atualizao no ser necessria. O desempenho do computador ser muito melhor se a pgina escolhida para ser substituda for uma pgina que no usada constantemente, pois se a pgina removida for intensamente usada, provvel que precise ser trazida de volta, ocasionando custos extras. O problema de substituio de pginas tambm ocorre em outras reas de concepo de computadores. Um exemplo o que ocorre quando um computador contem blocos de memria cache cheios, quando isto acontece um desses blocos precisa ser substitudo. Outro exemplo acontece com servidores na web, estes podem manter certos nmeros de paginas usadas na web dentro da memria cache, contudo, se a cache estiver cheia, alguma pagina precisara ser descartada para que uma nova pagina possa ser criada. Existem algoritmos para realizar a substituio de pginas, e, em todos eles, a questo que surge a seguinte: a pgina a ser removida deve vir do prprio processo que causou a falha ou de outro processo aleatrio? No primeiro limitamos o numero de pginas que podem ser removidas, j no segundo caso, no. Estes algoritmos so: Algoritmo timo de substituio de pgina: algoritmo muito fcil de escrever, mas impossvel de programar. Ele funciona marcando cada pgina com o nmero de instrues que sero executadas antes que a pgina seja referenciada e retira da memria quando necessrio a pgina que tem menos chances de ser referenciada, ou seja, a pgina com o maior nmero de instrues faltantes, assim, o algoritmo adia a ocorrncia da prxima falta de pgina ao mximo. Algoritmo de substituio de pgina no usada recentemente (NRU): a maioria dos computadores com memria virtual tem 2 bits de status, o bit referenciado R que colocado em 1 sempre que a pgina referenciada (lida ou escrita), e o bit modificado M que colocado em 1 sempre que a pagina modificada. Esses bits podem ser usados para construo de algoritmos de paginao, quando um processo inicializado, os dois bits so colocados em 0 e periodicamente, o bit R limpo para que se haja uma diferenciao entre as pginas que foram ou no referenciadas recentemente. Quando ocorre uma falta de pginas o sistema inspeciona todas as pginas e as classificam em quatro categorias que vo de classe zero, onde R e M valem 0, at classe 4 onde R e M valem 1. O algoritmo NRU remove aleatoriamente uma pgina da classe de ordem mais baixa que no esteja vazia. Este algoritmo de fcil compreenso e implementao alm de ter um desempenho adequado.

Algoritmo de substituio de pgina primeiro a entrar, primeiro a sair (FIFO): neste algoritmo, o SO mantm uma fila das pginas correntes na memria, sendo que a pgina no incio da fila a pgina mais antiga e a pgina no final da fila a pgina mais nova. No caso de ocorrer uma falta de pginas, a pgina mais antiga, ou seja, a pgina que esta no incio da fila removida e assim, a nova pgina colocada no incio da fila. O algoritmo FIFO bastante simples, porm ineficiente j que uma pgina que esta em constante uso pode ser removida. Este algoritmo muito pouco utilizado. Algoritmo de substituio de pgina segunda chance: este algoritmo uma modificao do algoritmo FIFO que evita o problema de se jogar fora uma pgina intensamente usada. Isto feito inspecionando o bit R da pgina mais antiga, se este for igual a 0, alm de ser a pgina mais antiga, ela no esta sendo usada, de modo que ser substituda imediatamente. Se o bit R for 1, ele ser colocado em 0, a pgina posta no final da lista de pginas e seu tempo de carregamento ser atualizado, ento a pesquisa continua. Este um algoritmo que sempre termina. Algoritmo de substituio de pgina do relgio: este algoritmo uma melhoria em relao ao algoritmo segunda chance. Nele temos uma lista circular com um ponteiro apontando para a pgina mais antiga. Se ocorrer falta de pgina, o bit R verificado, se o valor dele for 0 a pgina removida e se o valor for 1 o ponteiro do relgio avana para a prxima pgina, deixando a anterior com o bit R tendo valor 0. A nica diferena ente este algoritmo do algoritmo segunda chance o formato da lista, neste caso, uma lista circular. Algoritmo de substituio de pgina usada menos recentemente (LRU): este algoritmo leva em conta que se uma pgina no esta sendo utilizada a um bom tempo quer dizer que ela permanecera no sendo utilizada por um longo perodo. Logo, quando ocorrer uma falta de pgina, a eliminao se dar a pgina no utilizada pelo perodo de tempo mais longo. Embora seja um algoritmo realizvel, no barato, j que o custo para manter uma lista encadeada com todas as pginas que esto na memria separadas em recentemente e no recentemente usadas e que deve ser atualizado em cada referncia de memria alto. Este algoritmo pode ser tanto implementado em hardware como em software. Em hardware, preciso um contador (64 bits), incrementado automaticamente aps cada instruo, alm disso, uma tabela de pginas deve armazenar o valor desse contador C em cada entrada, aps cada referncia a memria, o valor atual de C armazenado na pgina correspondente na tabela. Numa falta de pginas, o SO examina todas as entradas na tabela para encontrar a com o menor C, esta pgina seria a menos usada recentemente. Embora essas implementaes do LRU em hardware sejam realizveis, poucas mquinas tem esse tipo de hardware. Com isso existe a possibilidade de se empregar o algoritmo de substituio de paginas no usadas recentemente NFU. Para cada pgina deve existir um contador iniciado com zero, a cada interrupo do clock, o SO varre todas as pginas da memria e, para cada pgina, o bit R adicionado. Quando ocorrer uma falta de pginas, o SO escolhe a pgina com o menor contador para ser substituda. Um problema que com esse algoritmo no se esquece de nada, pginas frequentemente acessadas em uma poro pequena do cdigo, mas que no mais sero acessadas, no sero candidatas. Felizmente uma

pequena modificao no algoritmo possibilita a simulao do algoritmo LRU. Este algoritmo modificado mais conhecido como Aging, ou algoritmo de envelhecimento funciona sabendo quantas vezes uma pgina foi referenciada e quando ela foi referenciada. Primeiro os contadores so deslocados direita em um bit, s ento o bit R adicionado, s que ao bit mais a esquerda. Em uma falta de pginas, a pgina com o menor contador removida. Algoritmo de substituio de pgina do conjunto de trabalho (working set):

Vous aimerez peut-être aussi