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!