Pular para o conteúdo

Entenda o algoritmo LRU e como ele mantém os dados mais utilizados na memória

Algoritmo LRU da Shared Pool, você conhece seu funcionamento?

O algoritmo LRU (Least Recently Used ) , é um algoritmo que rege o estilo de como as informações e  dados são mantidos  na Shared Pool. Vamos supor que você possui 10 bolas de futebol, que devessem ser guardadas, quais delas você guardaria primeiro? A resposta mais viável, seria as bolas de futebol que você não estivessem utilizando há algum tempo, ou seja, as bolas de futebol menos utilizadas recentemente. Bom, é exatamente isso que o algoritmo LRU faz : deixar na memória os dados e informações que estão sendo utilizados com mais frequências.

Casa posição do vetor recebe um apontamento, a partir de sua utilização. Lembre-se que os dados menos recentemente utilizados serão apagados. Seguindo o exemplo da figura abaixo, temos um vetor com 3 (0,1,2) posições.  Os dados que serão inseridos neste vetor serão respectivamente os números 1-2-3-2-5-1-6. (caso 1 – c1 )De início, inserimos o número 1. (caso 2 – c2 )Depois o número 2,abaixo do primeiro número inserido, que foi o número 1. (caso 3 – c3) Posteriormente, temos que inserir o número 3, que por sua vez, é inserido na última posição do vetor. (caso 4 – c4 )  Nesta situação, tem que se inserir um número que já existe no vetor, no caso o número 2. Sendo assim, como o número já está no vetor, não há alteração no vetor, pois o mesmo já se encontra lá, seguindo para o próximo número a ser inserido. (caso 5 – c5 ) Como o último dado a ser inserido, no qual teve alteração de dados no vetor foi o número 3, que foi inserido na última posíção, o número 5 é inserido na primeira posição do vetor.(caso 6 – c6 ) Como o último número inserido foi o número 5, na primeira (posição 0) do vetor, o número a ser inserido neste momento, o número 1, é inserido na segunda posição (posição 1) do vetor. O algoritmo LRU é perceptível neste caso: como no caso c3 o número 3 foi inserido na última posição do vetor e no caso, c4 não houve alteração e, no caso c5 o número 5 foi inserido na primeira posição do vetor, qual posição que foi menos utilizada nesta questão? Notemos que em nenhum momento utilizamos o número 2, da segunda posição (posição 1) , do caso 3- c3 até o caso 5 – c5. Por isso, neste caso o número 2 (localizada na posição 1), foi substituído pelo número 1. (caso 7 – c7 ) Por fim,  o último número a ser inserido – número 6. Como o  número 1, foi inserido  na segunda (posição 1) do vetor no último caso, o número 6 é inserido na última posição (posição 2) do vetor e, após isso, como não tem mais nenhum dado a ser inserido, o vetor é finalizado.

  • 5 na primeira posição do vetor (posição 0);
  • 1 na segunda posição do vetor (posição 1);
  • 6 na terceira posição do vetor (posição 3).

Reitera-se que na prática no mundo computacional, os números não são inseridos  respectivamente na ordem como foi elucidado acima,  essa é uma representação acadêmica para explicar o algoritmo.

Caso queira uma versão animada do algoritmo, segue abaixo um link que possui a representação do mesmo:

http://cs.uttyler.edu/Faculty/Rainwater/COSC3355/Animations/lrupagereplacement.htm

Espero ter ajudado. Abraços!

Bruno Reis

Bruno Reis

DBA ORACLE  na International Business Machines (IBM), fornecendo suporte para grandes clientes. Técnico em Informática pela Escola Técnica Polivalente de Americana e estudante de Ciência Computação . Mantenedor do Weblog sobre Banco de Dados Oracle e Gerenciamento de Serviços de TI: www.brunors.com

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress