Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
so:algoritmos_de_substituicao_de_paginas [2010/11/19 17:34] – maziero | so:algoritmos_de_substituicao_de_paginas [2010/12/10 17:57] (atual) – maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Algoritmos de substituição de páginas ====== | ||
+ | |||
+ | 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: | ||
+ | |||
+ | * FIFO (//First In, First Out//) | ||
+ | * OPT (Algoritmo ótimo) | ||
+ | * LRU (//Least Recently Used//) | ||
+ | |||
+ | 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 '' | ||
+ | |||
+ | 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, | ||
+ | </ | ||
+ | |||
+ | **Atenção**: | ||
+ | |||
+ | < | ||
+ | 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 | ||
+ | | 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 '' | ||
+ | |||
+ | Dicas: | ||
+ | * para ler os parâmetros da linha de comando use '' | ||
+ | * para ler dados da entrada padrão (//stdin//) use '' | ||
+ | |||
+ | <code c> | ||
+ | n = 0 ; | ||
+ | while ( (! feof(stdin)) && (n < MAXIMO) ) | ||
+ | scanf (" | ||
+ | </ | ||