Baixe o app para aproveitar ainda mais
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.
Compartilhar