O objetivo deste exercício é escrever uma aplicação que simule o funcionamento de algoritmos de substituição de páginas usados em sistemas operacionais.
Neste exercício, a sua aplicação receberá uma sequência de números inteiros da entrada padrão:
o primeiro parâmetro representa a quantidade de quadros de memória disponíveis na RAM;
o segundo parâmetro representa a quantidade de páginas referenciadas durante a execução de um processo;
os demais números representam a sequência de referências a páginas, sempre um número separado por linha.
Como saída, a aplicação deverá indicar a quantidade de faltas de páginas (page faults) necessárias para acomodar as páginas nos quadros disponíveis. Neste exercício, utilizaremos a heurística FIFO para reposicionar as páginas.
A entrada é composta por uma sequência de inteiros separados por linhas. A primeira linha contém um número inteiro ( ) representando a quantidade de quadros disponíveis na memória RAM, a segunda linha contém um número inteiro ( ) indicando a quantidade de referências às páginas feitas pelo processo. A partir da terceira linha, são apresentados números ( ), cada um separado em sua respectiva linha, representando a página que é acessada pelo processo.
Para cada sequência de teste de acesso a páginas, você deverá imprimir uma única linha contendo a quantidade de quadros page faults.
4
12
1
2
3
4
1
2
5
1
2
3
4
5
10
20
3
7
0
1
2
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1
15