Algoritmos e Estruturas de Dados III
2
semestre de 2008
Este trabalho prático tem por objetivo projetar um sistema de paginação e utilizar esse sistema para dar suporte a um sistema de cache de consultas.
Um consulta é composta de um ou mais termos. A cada termo temos associado um conjunto de informações de ocorrência daquele termo. Para fins de simplificação, vamos assumir que esse conjunto de informações ocupa um espaço constante e parametrizável. Para satisfazer uma consulta, as informações de todos os termos que a compõem tem que ser lidos e processados. Um exemplo de arquivo de consultas está disponível.
A demanda por um sistema de cache de consultas vem do fato de que o volume dos dados associados aos termos é maior que a memória disponível, sendo necessário algum mecanismo coordenado que utilize tanto a memória primária quanto a memória secundária.
Para projetar o seu sistema de cache você recebe um registro típico de consultas a serem respondidas e o tamanho, em bytes, das informações a serem mantidas por termo. Você também pode assumir que o seu sistema recebe os seguintes parâmetros:
Como parte do seu projeto, você deve investigar os compromissos em termos de tamanho de página, disposição das informações dos termos nas páginas e política de reposição de páginas. O tamanho da página vai definir o número de termos cujos conjuntos de informações podem ser mantidos em uma única página. A disposição das informações nas páginas define quais os termos cujos conjuntos de informação compartilham a mesma página. Você pode inclusive considerar a utilização de um índice que permita acessar de forma fácil esses conjuntos de informação. A política de reposição de páginas define qual a página a ser descartada quando uma nova página deve ser carregada e a memória está cheia.
Pede-se: