[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: listas ligadas X duplamente ligadas da classe PAGES



Paulo Eduardo Azevedo Silveira writes:
 > oi professor
 > na classe BufferManager tenho o seguinte:
 > 
 > bufferpool = vetor de pages
 > hash = vetor de listas ligadas de pages
 > desocupados = lista ligada de pages (indica frames deocupados no pool)
 > candidatas = lista duplamente ligada de pages (candidatas a replace)
 > 
 > como vc pode ver, estou usando listas ligadas e duplamente ligadas de
 > PAGES. Atualmente estou criando duas classes a mais:
 > ListaLigadaPages.java
 > e
 > ListaDuplaPages.java
 > 
 > Mas eu queria economizar e usar apenas a classe ListaDuplapages, sem usar
 > o segundo ponteiro que aponta pro antecessor, no lugar da
 > ListaLigadaPages. Posos fazer isso ou eh um desperdicio de espaco?

Não sei se entendi... Sua classe Page tem os campos next, lruNext e
lruPrevious sugeridos no enunciado? 

Se tiver, a lista duplamente ligada usa os campos lruNext e lruPrevious
e as listas simplesmente ligadas usam o campo next. Então o código da
lista duplamante tem que ser diferente do das listas simplesmente
ligadas. Não entendo como você usaria a mesma classe...

Se não tiver, esses campos estão numa classe auxiliar. Embora essa seja
a solução "mais limpa", ela é menos eficiente. Ela envolve a criação de
um objeto auxiliar toda vez que houver uma inserção numa lista. Como as
operações pin/unpin são chamadas muito freqüentemente, eu recomendei que
as listas ligadas do gerenciador de buffers fossem implementadas usando
um esquema "menos limpo" (com campos de encadeamento nos próprios
objetos Page).

Reverbel