Buscar

sop-exerc-impl-cache-blocos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Universidade do Estado de Santa Catarina – Bacharelado em Ciência da Computação
Sistemas Operacionais – Prof. Rafael R. Obelheiro
Exercício – Implementação de Cache de Blocos
Escreva um programa C que simule uma cache de blocos de disco (buffer cache). O pro-
grama recebe dois parâmetros na linha de comando, o número de entradas da tabela hash
e o número máximo de objetos na cache. Um bloco é representado por um valor inteiro. O
programa deve ler números de bloco da entrada padrão (um bloco por linha), até o final
de arquivo, e processar cada bloco como uma referência que deve passar pela cache. Caso
o número seja −1, deve ser impressa uma lista dos blocos em cache, iniciando por aquele
acessado há mais tempo e terminando pelo mais recentemente acessado. Caso o número
lido seja −2, deve ser exibida a tabela hash.
Quando a leitura for encerrada, o programa deve exibir o conteúdo da cache (lista de
blocos ordenada pelo instante de acesso) e a taxa de acertos (a porcentagem de referências
que já estavam na cache).
Exemplo de execução do programa:
$ ./cache-sim 2 4
1
2
3
-1
Blocos na cache: (+antigo) 1 2 3 (+recente)
4
5
3
2
6
3
5
6
-2
Tabela hash:
0: [2 6]
1: [5 3]
3
6
<Ctrl-D>
Blocos na cache: (+antigo) 2 5 3 6 (+recente)
Taxa de acerto: 53.85% (7 acertos/13 referencias)
Os arquivos devem ser carregados no Moodle até o final da aula.

Outros materiais