Baixe essa descrição, melhor editada em .pdf: aqui |
---|
Sistemas Operacionais - Prof. Rafael R. Obelheiro - Semestre: 2008.1
Trabalho 2 - Gerência de Memória
1 Definiçãoçã do Problema
O objetivo deste trabalho é implementar e comparar
diferentes estratéégias de ger&êcirc;ncia de memóória
usando partiçõções variááveis. Para isso, deveráá ser implementado
um programa de simulação que processa
uma seqüência de pedidos de alocação e desalocação
de memória e gera algumas estatísticas ao final da
execução. O simulador deverá ser implementado em
C, de acordo com as seguintes especificações:
1. O programa recebe dois argumentos na linha de comando. O primeiro argumento indica o algoritmo a ser usado na escolha da lacuna de memória a ser alocada (best fit, worst fit, first fit
ou circular fit), e o segundo argumento, que é
opcional, define o tamanho da área de memória
usada na simulação (em KBytes).
2. O programa deverá alocar dinamicamente uma
área de memória que será usada para atender as
requisições de alocação.
3. As requisições de alocação e desalocação serão lidas da entrada padrão, uma por linha. O formato das linhas é o seguinte:
processo operação [ operando ]
O signicado de cada elemento e dado abaixo:
processo: um número que identica o processo que esta fazendo a solicitação;
operação: existem trêes operações definidas, cada uma representada por uma string :
ALOCA, DESALOCA e ESTAT.
ALOCA e DESALOCA são, respectivamente,
requisições de alocação e desalocação de memória. Um processo só pode desalocar memória quando possui memória alocada, e não pode alocar memória caso já possua memória
alocada.
ESTAT provoca a exibição das estatísticas
de uso do gerenciador de memória,
e só pode ser invocada pelo processo
especial 0.
Cada operação pode expressa apenas através
da sua letra inicial (A, D ou E).
operando: a única operação que requer um operando é ALOCA, que precisa do tamanho
de memória a ser alocada (em bytes).
4. As estatísticas que devem ser exibidas ao -
final da execução ou quando for recebido um comando ESTAT são as seguintes:
pedidos de alocação de memória (total/atendidos/rejeitados);
tamanho das partic~oes alocadas com sucesso
(maximo/mnimo/media);
tamanho da menor lacuna gerada durante a execução;
distância média percorrida na lista de lacunas para atender a requisições de alocação.
5. Por default, a única saída gerada pelo programa
são as estatísticas ao final da lista de requisições.
Inclua também uma opção de linha de comando
para exibir o resultado de cada requisição e outra
para gerar informações de depuraçãao (que
incluem os resultados).
2 Apresentação e Avaliação
O trabalho pode ser realizado individualmente
ou em grupos de ate três alunos.
Deverá ser entregue um relatório curto, descrevendo a solução adotada para resolver o problema.
Faça uma descrição informal, em pseudocódigo - ou seja, não coloque uma listagem do programa. Inclua uma explicação da estrutura adotada para gerenciar as áreas de memória livres e alocadas, e exemplos da saída do programa para um mesmo conjunto de requisições.
O trabalho devera ser apresentado pessoalmente na aula de TERCA-FEIRA, 3 DE JUNHO,quando também deverá ser entregue o relatório.
A nota do trabalho e individual, sendo composta pela avaliação do relatório, do código em si e da apresentação. Caso o trabalho seja realizado em grupo, todos os integrantes deverão participar da apresentação, e serão argüidos individualmente.
A nota do trabalho corresponde a 25% da segunda prova. Alunos que não entregarem o trabalho, não cumprirem o prazo ou não participarem da apresentação terão a prova avaliada em 100%.