You are on page 1of 9

Estudo dos algoritmos de Gerncia de memria virtual

Ccero A. da Silva1, Lucas de A. Marciano1 Departamento de Cincias Exatas e Aplicadas Universidade Federal do Rio Grande do Norte (UFRN) Caic, RN Brasil
ciceromk@bol.com.br, lucas.almeida.marciano@gmail.com

Abstract. This article describes three virtual memory management algorithms, which are the FIFO (First In, First Out), LRU (Last Recently Used) and Random. These algorithms will be implemented and have their data analyzed for a better understanding of their management means, for this analysis it will be used the number of Written On Disk (Written on Disk) and the number of memory's address location faults (Page Faults). Resumo. Este artigo descreve trs algoritmos de gerncia de memria virtual, que so eles o FIFO (First in, First out), LRU (Least Recently Used) e o Random. Esses algoritmos sero implementados e seus dados analisados para um melhor entendimento sobre suas formas de gerenciamento, para a anlise ser usado o nmero de escritas no disco (Written on disk) e o nmero de erros de localizao de endereo da memria (Page Faults).

1. Introduo
Na dcada de 40, John von Neumann falava do uso da hierarquia de memria. Desde ento o conceito de hierarquia de memria fez com que geraes de projetistas se deparassem com o problema de buscar a melhor alternativa de gerncia da memria. Com isso foram criados vrios algoritmos para o gerenciamento da memria virtual. Neste trabalho iremos abordar apenas trs desses algoritmos, que so: FIFO (First In, First Out), LRU (Least Recently Used) e Randon, que sero descritos em tpicos seguintes. No geral esses algoritmos trabalham com a poltica de substituio de pginas de acordo com o endereo que ser alocado, para tornar eficiente qualquer sistema de memria com paginao. Esses programas funcionam verificando se o endereo que foi designado para certa pgina est livre, caso ao esteja ocorre uma falta de pgina, necessitando que esta pgina seja alocada direto na memria, para ser tratada mais tarde. Cada algoritmo trata as pginas de uma forma diferente, com quantidades de escritas no disco e erros de pginas diferentes, mas no FIFO e no LRU independe da quantidade de frames dados, pois eles seguem a mesma ideia, ambos usam uma caracterstica temporal para fazer a escolha de qual pgina vai ser retirada que so: tempo de espera (load_time) para o FIFO e o tempo que ele foi referenciado pela ltima vez (last_reference_time) para o LRU, enquanto que o Random escolhe uma posio aleatoriamente (Figura 1).

1.1. FIFO Na vida real o uso de filas feito em vrios ambientes onde algum espere atendimento de algum servio, seguindo o critrio de ser atendido primeiro aquele que chegou frente dos demais. No computador existe uma tcnica de tratamento de pginas que se intitula FIFO, First in, First out, podendo ser traduzido como primeiro a entrar, primeiro a sair. O algoritmo FIFO usa uma fila para tratar as pginas, para que elas sejam processadas, verificando o tempo desde que foi alocado na memria, quem tiver o maior tempo ser o primeiro ser retirado da memria (ver Figura 1). De acordo com OLIVEIRA (2010), no FIFO existe um erro, pois o FIFO no usa dos princpios de localidade, desconsiderando o acesso a uma pgina como um dos critrios para escolha da pgina a ser substituda. Outra falha que o FIFO apresenta a anomalia de Belady, que diz que, a quantidade de Page Faults pode aumentar quando o tamanho da memria tambm aumenta. Por isso o algoritmo FIFO puro pouco utilizado. 1.2. LRU Quando temos alguma roupa antiga em nossa casa, que h muito tempo est sem ser usada, passa-se o tempo e a roupa fica fora de moda, dizemos que ela no pertence mais a esse tempo. No algoritmo LRU (Least Recently Used), usamos de uma ttica muito parecida, diferente do FIFO que retira a primeira pgina da fila, gerando os problemas com o princpio de localidade, o LRU retira da sequncia de pginas, a pgina que est h mais tempo sem ser utilizada, j que as recentemente usadas tem a probabilidade de ser usada novamente, enquanto que as h muito tempo no usadas, certamente no pertence ao conjunto de pginas lgicas que formam a localidade de referncia que um processo necessita (ver Figura 1). Vale salientar que o problema com os princpios de localidade gerados pelo FIFO sanado na implementao do LRU, infelizmente gerando um problema, pois o mesmo possui uma grande carga computacional, sendo que ele precisa carregar o tempo de acesso da pgina e reordenar a lista das pginas.

2. Memria Virtual
Na atualidade, os computadores enfrentam o problema de encontrarem memria fsica livre. Hoje, executa-se, uma quantidade, cada vez maior, de programas e esses programas ocupam uma quantidade, cada vez maior, de memria. Sabendo-se disso fica evidente que se tem uma necessidade de expandir a capacidade de memria oferecida pelo computador. No entanto, ocorre um empecilho no aumento de memria RAM. Estes tipos de memria so muito caras, o que deixaria o custo do sistema computacional invivel aos consumidores. Notou-se que nem todos os programas esto sempre em uso e que nem todas as reas de memrias de um programa esto sempre sendo utilizadas. Ento, surge a idia de memria virtual, como sendo uma "tcnica que permite a execuo de um processo sem que ele esteja completamente em memria." Com a memria virtual utiliza-se uma rea do disco ("rea de swap") para aumentar a memria acessvel pelo sistema computacional. Dessa forma, quando uma rea do processo necessita ser acessada ela transferida para a memria RAM. Com o servio da memria virtual pode-se executar programas maiores que a capacidade de armazenamento da memria RAM, aumentar o nmero de processos em memria e

economizar pelo fato de utilizar o disco que uma memria mais barata do que aumentar a memria RAM. No entanto, o disco mais lento do que a RAM o que diminui o desempenho do sistema.

3. Simulador de Memria Virtual


A implementao foi feita baseando-se no simulador de memria virtual usado em uma disciplina de Sistemas Operacionais da Universidade Nova de Lisboa. O simulador faz uso de um ficheiro que tm linhas, nas quais sua primeira parte representa o endereo virtual e a segunda parte a operao, que pode ser: R (leitura) ou W (escrita). Assim, este simulador permite imitar a maneira como o hardware de paginao e a rotina de tratamento da interrupo age quando ocorre falta de pgina. Esta simulao realizada obedecendo s seguintes condies: 1. Existe apenas um processo com espao de endereamento virtual com 32 bits em que 12 bits so usados para deslocamento e 20 bits para indicar a pgina virtual; 2. A memria dividi-se em pginas ou "frames" de mesmo tamanho. A quantidade de frames definida em linha de comando; 3. As pginas podem ser referenciadas tanto para leitura quanto para escrita; 4. As pginas so carregadas medida que so solicitadas; 5. Quando todos os frames encontram-se ocupados ocorre escolha de um frame, chamado vtima, para ser retirado e substitudo. A poltica de substituio pode ser: Random, FIFO e LRU.

4. Implementao dos algoritmos


Foram abordados trs algoritmos para gerenciar a substituio de frames: Random, FIFO e LRU. No algoritmo Random feito o sorteio de um nmero, escolhido ao acaso, dentro da quantidade de frames existentes, este nmero indica qual frame deve ser substitudo. No caso do FIFO, feito uma busca no vetor de frames e retorna-se como vtima a posio do frame que tem um load_time menor, tendo em vista, que quanto menor o load_time h mais tempo o frame est na memria. Isto, baseando-se no fato, de que o FIFO escolhe para substituio a pgina que est h mais tempo na memria. Com relao ao LRU, percorre-se o vetor de frames para encontrar qual deles tem o menor last_reference_time e retorna-se a posio como vtima que tenha o menor valor de todos. Considerando o fato de que o LRU escolhe como vtima a pgina que foi acessada h mais tempo, ou seja, a menos recentemente usada. Partindo do pressuposto que pginas acessadas recentemente podero ser requisitadas em um futuro prximo.

5. Anlise Comparativa
Os algoritmos LRU, FIFO e Random foram analisados de acordo com duas caractersticas que so: Page Fault, que se trata de uma interrupo disparada pelo

hardware quando um programa acessa uma pgina mapeada no espao de memria, mas que no foi carregada na memria fsica do computador, e Written in disk que o nmero de vezes que a pgina escrita na memria. Nos algoritmos FIFO e LRU foram capturadas apenas uma amostra de cada fila de processo, sendo essa fila esttica, assim os algoritmos agiram da mesma forma sempre, fazendo que os resultados fossem sempre iguais, variando apenas quando alterado o nmero de frames e o trace. J no Random, por retirar sempre uma posio aleatria, quando ele era iniciado mostrava um resultado diferente, ento foram feitos cinco testes, em seguida, gerado uma mdia aritmtica. Os frames variaram de 8, 16, 24, 32 e 64, para todos os algoritmos. Apesar de possurem implementaes diferentes, o formato dos grficos ficaram bem parecidos. Em todos os casos, quando se era aumentado o nmero de frames o desempenho dos algoritmos melhorava, pelo fato de mais frames poderem est na memria ao mesmo tempo. O LRU teve o melhor desempenho em todos os casos, mesmo com traces diferentes, devido ser o algoritmo que se baseia no princpio de localidade. No gcc.trace e no sixpack.trace o FIFO teve um desempenho melhor do que o Random, tanto quanto na quantidade de Page Fault quanto na de Written in Disk. J usando o bzip.trace ou o swin.trace o FIFO foi pior do que o LRU nos critrios analisados.

6. Concluso
Ao final deste artigo conclumos que, o uso de algoritmos de controle de memria virtual varia de acordo com o nmero de frames e da lista de processos, que o arquivo trace. Em relao aos desempenhos, o algoritmo LRU mostrou-se o mais eficiente entre os demais, enquanto que o Random demonstrou-se o pior e o FIFO um meio termo. Finalmente podemos afirmar que o uso do FIFO e do Random, no pode ser to confivel, pois eles no obedecem aos princpios de localidade, no sendo, o FIFO, indicado para sistemas em tempo real (muitas pginas referenciadas por iterao), enquanto que o LRU no indicado para sistemas com grandes loops, por ter um grande gasto de memria, j que esses sistemas possuem uma grande quantidade de pginas a serem alocadas (JIANG, 2002).

7. Figuras

Figure 1. Poltica de substituio de pginas Random, FIFO e LRU Tabela 1. Tabelas com os resultados do FIFO

Tabela 2. Tabelas com os resultados do LRU

Tabela 3. Tabelas com os resultados das mdias do Random

Figura 2. Grfico com a comparao entre os trs algoritmos gcc.trace

Figura 3. Grfico com a comparao entre os trs algoritmos bzip.trace

Figura 4. Grfico com a comparao entre os trs algoritmos swin.trace

Figura 4. Grfico com a comparao entre os trs algoritmos sixpack.trace

Referncias
Oliveira, R., Carissimi, A. e Toscani, S. (2010) Sistemas operacionais, Bookman, 4. ed. JIANG, S.; ZHANG, X. LIRS: An efficient low inter-reference recency set replacement policy to improve buffer cache performance. Em: INTERNATIONAL CONFERENCE ON MEASUREMENT AND MODELING OF COMPUTER SYSTEMS, 27., Marina Del Rey, 2002. SIGMETRICS 02: Proceedings. Marina Del Rey: ACM, 2002. p.31-42.

You might also like