Simulador de Gerenciador de memória

Pessoal, seguinte, preciso implementar um código de um simulador de gerenciador de memória e quero fazer em java, pois tenho mais intimidade com a linguagem. Problema é que eu não sei nem o que fazer.

O que esse Gerenciador de Memória deve, supostamente, fazer? É importante definir o que será simulado antes para poder partir para a implementação sem grandes dificuldades.

Prática de Gerenciamento de memória

  1. Utilizando alguma linguagem de programação à sua escolha, implemente um “mini” simulador p/ um algoritmo de alocação de memória usando partições variáveis à sua escolha. Deve ser mostrada a execução de, pelo menos, 10 processos com diferentes tamanhos (desde que a soma ultrapasse o tamanho da memória principal - MP) necessitando de espaço a ser alocado em uma memória principal de 512 MB. A cada novo processo alocado na memória, deve-se exibir o estado atualizado da MP (ver ilustração no slide nº 26 das aulas 11-12 de ger. de memória). Caso haja impossibilidade de alocar todos os processos por conta de fragmentação, o sistema deve emitir uma mensagem E fazer a compactação da MP.

  2. Utilizando alguma linguagem de programação à sua escolha, implemente um “mini” simulador para um algoritmo de substituição de páginas à sua escolha. Utilize um esquema de 8 páginas de memória física e 16 páginas de memória virtuais p/ 4 processos (cada processo possui 4 páginas virtuais). Além disso, é necessário ilustrar a necessidade de substituição de uma página (ou seja, quando ocorre um “page miss”), daí lembrar de utilizar os bits (conforme algoritmo implementado) na abstração da entidade “Página”.

Observações gerais: Caso a atividade seja em equipe, CADA integrante deve implementar UM algoritmo distinto. As entradas dos algoritmos deve ser dinâmicas, ou seja, que permita a mudança para fins de testes. Além disso, a atividade deve ser postada no AVA até o dia anterior ao da apresentação (conforme plano de ensino). Não serão permitidos plágios dos mini-simuladores, sejam da Web, de outras equipes, ou quaisquer outras fontes.

É pra fazer com o algoritmo de bitmap ou com o algoritmo de lista ligada.