Olá Pessoal, estou com um trabalho na faculdade para fazer mas estou com muita dificuldade. A tarefa consiste em simular o gerenciamento de processos na memória que os SO utilizam (Memória Contígua - First Fit). Nesse caso, os processos estão sendo gerados mas quando devem ir para a memória, alguns não estão indo. Poderíam analizar meu código?
Obrigado
package Classes;
public class GerenciadorDeMemoria {
public int TAM = 30;
public Processo memoria[] = new Processo[TAM];
public int FirstFit(Processo processo){
int rep = 0;
boolean temespaco;
//encontra o primeiro buraco vago
while((memoria[rep] != null)&&(rep<=TAM)){
rep++;
}
//encontrou um buraco e vai verificar se tem espaço
temespaco = this.Temespaco(rep, processo);
//se tiver espaço retorna com a posição para adicionar ao Insere
if (temespaco == true){
return rep;
}
//se não tiver chamara o retira espaço
else{
return this.RetiraProcesso(processo);
}
}
public int RetiraProcesso(Processo processo){
//pra retirar um processo é preciso achar o processo mais antigo. Método vai chamar o processo AchaProcessoAntigo
//processoAux vem do AchaprocessoAntigo vai ser comparado com o processo processo até for maior ou igual a ele
Processo processoAux = this.AchaProcessoAntigo();
while (processoAux.tam < processo.tam){
processoAux = this.AchaProcessoAntigo();
}
return processoAux.id;
}
public Processo AchaProcessoAntigo(){
Processo processoAux = new Processo(999,1);
for(int i = 0;i<TAM;i++){
if (processoAux.id > memoria[i].id){
processoAux = memoria[i];
}
}
return processoAux;
}
public boolean Temespaco(int rep, Processo processo){
boolean temespaco = true;
for(int i = rep;i<processo.tam;i++){
if (memoria[i] == null){
temespaco = true;
}
else{
temespaco = false;
}
}
return temespaco;
}
public void Insere(Processo processo){
//chama o firstfit pra encontrar o primeiro livre e inserir
for(int i = this.FirstFit(processo);i<processo.tam;i++){
memoria[i] = processo;
System.out.println(memoria[i].tam);
}
}
}
Obs: Minha Classe Processo possui apenas 3 atributos.
Nome
ID
Tamanho
Eu agradeço enormemente!!!!
Obrigado, desde já!