Contexto
Políticas de substituição fazem escolhas diferentes diante da mesma sequência de acessos. O CacheLab foi desenvolvido para estudar essa diferença de forma reproduzível: controlar a capacidade, repetir o trace e comparar acertos e faltas sem misturar o algoritmo com a apresentação dos resultados.
Minha participação
Implementei o simulador, as três políticas, a interface de linha de comando e os scripts de geração de trace, experimentos e relatório. Organizei também testes das políticas, dos dados de entrada e das saídas para conectar o comportamento do algoritmo às métricas produzidas.
Como funciona
- Um gerador com seed produz acessos sintéticos com diferentes níveis de frequência e localidade.
- O simulador valida o CSV e aplica a política escolhida com uma capacidade de cache definida.
- Cada acesso incrementa hits ou misses; o experimento repete a combinação de políticas e capacidades.
- Os resultados são exportados para CSV, comparados em gráfico e usados na montagem de um relatório em PDF.
Decisões técnicas
Usar a mesma entrada para comparar
Separar geração do trace e execução permite que todas as políticas recebam a mesma sequência. A seed e os parâmetros deixam explícito o cenário que produziu cada resultado.
Definir o desempate do LFU
Quando dois itens têm a mesma frequência, o simulador remove o inserido há mais tempo. Tornar esse detalhe explícito no algoritmo e nos testes evita comparações apoiadas em um comportamento acidental.
Aprendizados
Uma comparação de algoritmos precisa dizer mais do que qual linha terminou acima no gráfico. O trace e a capacidade explicam o resultado; variar esses elementos ajuda a compreender quando uma política favorece o padrão de acesso observado.
Limites e próximos passos
- O estudo usa traces sintéticos e simula substituição por item; não mede desempenho de uma cache de hardware ou de produção.
- O gráfico representa uma execução salva, não uma superioridade universal de determinada política.
