O objetivo deste projeto é escrever um programa para simular os principais algoritmos de substituição de páginas usados no gerenciamento da memória virtual. O programa deverá simular os seguintes algoritmos:
O programa deverá receber como parâmetro o número de quadros disponíveis na RAM e ler da entrada padrão (stdin) a sequência de referências às páginas (uma referência por linha), conforme o exemplo a seguir:
simula-vm 4 < referencias.txt ou cat referencias.txt | simula-vm 4
Neste exemplo, a memória RAM tem 4 quadros disponíveis e o arquivo referencias.txt
contém as referências de acesso às páginas.
O programa deve gerar como saída o número de falta de páginas verificado para cada algoritmo, de acordo com o exemplo a seguir:
4 quadros, 30 refs: FIFO: 17 PFs, LRU: 15 PFs, OPT: 11 PFs
Atenção: deve ser usada a string de formato abaixo para a impressão do resultado na tela. Não imprima mais nada além disso.
printf ("%5d quadros, %7d refs: FIFO: %5d PFs, LRU: %5d PFs, OPT: %5d PFs\n", ...) ;
Para testar seu código, use os seguintes arquivos, que correspondem às strings de referências usadas no livro do professor (capítulo V - Gerência de Memória):
Quadros | FIFO | LRU | OPT |
---|---|---|---|
64 | 38496 | 30416 | 18377 |
256 | 9859 | 6270 | 3107 |
1024 | 1450 | 1273 | 1260 |
4096 | 1260 | 1260 | 1260 |
Deve ser entregue ao professor o código-fonte em C do simulador (arquivo simula-vm.c
), devidamente comentado.
Dicas:
argc/argv
scanf
n = 0 ; while ( (! feof(stdin)) && (n < MAXIMO) ) scanf ("%d\n", vetor[n++]) ;