[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
RE: Jbase
> Professor, na classe BufferManager eu vou ter uma tabela de
> hashing, uma lista com os frames desocupados e uma lista duplamente ligada
> com paginas candidatas a substituicao. Mas algumas coisas eu nao
> entendi:
Como mais gente pode ter as mesmas dúvidas, estou respondendo para a
lista toda.
> - A tabela de hashing so contera os frames que estao no
> bufferPool? E se eu substituir uma das paginas do pool, ela deve ser
> removida da tabela?
Sim para as duas perguntas. No caso da substituição de página, a página
que sai do pool sai da tabela e a que entra no pool entra na tabela.
> - Qual a diferenca entre as paginas candidatas a substituicao e
> aos frames desocupados? (ambos nao tem pinCount igual a zero?)
Os frames desocupados não contém páginas. Para esses frames o pinCount
não tem significado (o valor do pinCount pode ser um lixo qualquer).
O pinCount só faz sentido para os frames que contém páginas. Ele indica
quantos "alfinetes" estão prendendo a página ao frame. As páginas
candidadas a substituição são aquelas que estão no bufferPool e tem
pinCount igual a zero.
Note no caso de um frame desocupado não é preciso fazer
"substituição". É só ocupá-lo (ler uma página do disco para o frame) e
pronto! No caso de uma substituição voce pode ter que gravar em disco
a página que está no frame antes de substituí-la por outra.
> - No inicio, todos os frames devem ser incluidos na lista de
> desocupados?
Sim.
> - Ao achar uma pagina por hashing, como vou saber qual o indice i
> do bufferPool em que a pagina se encontra?
No enunciado eu sugeri uma tabela de hash associando page ids a frames
(objetos Page). Com uma tabela assim você não precisa saber o índice de
um frame no bufferPool. Você obtém da tabela uma referência para um
objeto Page e o utiliza sem saber qual o seu índice no bufferPool.
> Mais uma coisa, a data de entrega sera adiada? (sim)
Não sei... Espero que não seja preciso.
Reverbel