Prática de Implementação: Simulação da Alocação da Memória e Substituição de Páginas

Lesandro Ponciano ORCID iD

27 de dezembro de 2024 (última atualização)

Objetivos

São dois os objetivos gerais desta prática:

  1. Permitir o exercício de conceitos e algoritmos de gerência da memória (alocação de quadros de modo igual, alocação de quadros de modo proporcional, tamanho de processos em número de páginas);
  2. Implementar mecanismos e políticas fundamentais para o funcionamento de sistemas operacionais, como alocação de quadros e políticas de substituição.

O que deve ser feito

Deve-se implementar as 5 políticas de substituição de páginas estudadas em sala (FIFO, OPT, LRU, LFU, MFU) e propor uma nova política de substituição (MY). A política MY não pode se valer de informações do futuro e deve ser inédita. Todas as implementações devem ser parte de um mesmo projeto. O programa principal deste projeto deve ler um arquivo de entrada (como o exemplificado abaixo), executar as 6 políticas de substituição e, com base nos resultados obtidos, gerar um arquivo de saída (como o exemplificado abaixo).

Exemplo do Formato do Arquivo de Entrada
        Tamanho(quadros)=3 
        Processos(páginas):
        P1=10
        P2=30;
        Alocação=Igual
        Substituição=Local
        Sequência:
        P1,7
        P1,0
        P1,1
        P2,2
        P2,0
        P2,3
        P1,0
        P1,4
        P1,2
        P1,3
        P2,0
        P2,3
        P2,2
        P2,1
        P1,2
        P1,0
        P1,1
        P1,7
        P1,0
        P1,1;
    
Exemplo do Formato do Arquivo de Saída
        Requisições=??
        TaxasDeErros:
        FIFO=?,??
        OPT=?,??
        LRU=?,??
        LFU=?,??
        MFU=?,??
        MY=?,??
    

Note que, o tamanho da memória, o número e tamanho de processos, a política de alocação da memória e a sequência de referência são dependentes do arquivo de entrada. Ou seja, tais parâmetros podem mudar dependendo do arquivo de entrada utilizado. Para teste das implementações, serão utilizados diversos arquivos de entrada diferentes. Alguns testes das implementações serão automáticos, portanto, o arquivo de saída deve seguir rigorosamente o formato exemplificado acima.

Material de Apoio