PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Escalonamento de Processos Round-robin #444207

28/05/2013

0

eu ja tenho a base em fifo, mais nao consigo fazer o escolamento usando em quantum. que poder ajudar resolver esse problema..

package GerenciamentoDeProcessos;

import javax.swing.JOptionPane;

public class TestaProcesso {
public static void main (String[] args){
Fifo fifo = new Fifo();

fifo.rodar(Integer.parseInt(JOptionPane.showInputDialog(""+"Quantidade de processos: ")));
}

}


package GerenciamentoDeProcessos;

public class Processo {
private int numeroProcesso;
private int numCiclos;
private int tempoChegada;
private int tempoEspera;
private int tempoTermino;
private int tempoAcabar;


public int getNumeroProcesso() {
return numeroProcesso;
}

public void setNumeroProcesso(int numeroProcesso) {
this.numeroProcesso = numeroProcesso;
}

public int getNumCiclos() {
return numCiclos;
}

public void setNumCiclos(int numCiclos) {
this.numCiclos = numCiclos;
}

public int getTempoChegada() {
return tempoChegada;
}

public void setTempoChegada(int tempoChegada) {
this.tempoChegada = tempoChegada;
}

public int getTempoEspera() {
return tempoEspera;
}

public void setTempoEspera(int tempoEspera) {
this.tempoEspera = tempoEspera;
}

public int getTempoTermino() {
return tempoTermino;
}

public void setTempoTermino(int tempoTermino) {
this.tempoTermino = tempoTermino;
}

public int getTempoAcabar() {
return tempoAcabar;
}

public void setTempoAcabar(int tempoAcabar) {
this.tempoAcabar = tempoAcabar;
}

}



package GerenciamentoDeProcessos;

import java.util.ArrayList;

import javax.swing.JOptionPane;

public class Fifo {

private ArrayList<Processo> listaProcessos = new ArrayList<Processo>();
private int contProcessos;
private int contTempo;
private int quantum;

void rodar(int quantProcessos) {
inicializarLista(quantProcessos);
processarLista();

}

void inicializarLista(int quantProcessos) {

for (int i = 1; i <= quantProcessos; i++) {
Processo p = new Processo();
// Atribui o numero de Processo (i)
p.setNumeroProcesso(i);
p.setNumCiclos(Integer.parseInt(JOptionPane
.showInputDialog("Numero de Ciclos de Processo: " + i)));

p.setTempoChegada(Integer.parseInt(JOptionPane
.showInputDialog("Tempo de chegada de Processo: " + i)));
listaProcessos.add(p);

}

}

void processarLista() {
Processo p = new Processo();
String saida = "Proc NC TC TE TT TA";
for (int i = 0; i < listaProcessos.size(); i++) {
p = listaProcessos.get(i);
contTempo = contTempo + p.getNumCiclos();
p.setTempoTermino(contTempo);
p.setTempoAcabar(contTempo - p.getTempoChegada());
p.setTempoEspera(contTempo - p.getNumCiclos() - p.getTempoChegada());



saida += "\n " + p.getNumeroProcesso() + " "
+ p.getNumCiclos() + " " + p.getTempoChegada()
+ " " + p.getTempoEspera() + " "
+ p.getTempoTermino() + " " + p.getTempoAcabar();

}

JOptionPane.showMessageDialog(null, saida);
}
}
Rafha

Rafha

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar