Round Robin

Published on February 2017 | Categories: Documents | Downloads: 33 | Comments: 0 | Views: 257
of 2
Download PDF   Embed   Report

Comments

Content


import java.util.ArrayList;
class RoundRobin
{
ArrayList cola;
int suma=0;
int quantum;
Proceso proc;
public RoundRobin(ArrayList cola)
{
this.cola=cola;
}
public String generar()
{
//sacamos la suma de los tiempos_CPU de cada proceso
for (int i=0; i<cola.size(); i++)
{
proc=(Proceso)cola.get(i);
suma+=proc.getTiempoCPU();
}
quantum=suma/cola.size();
//variables
String cadena="";
int contador=0;
int aux;
int suma_tiempo=0;
//proc=(Proceso)cola.get(contador);
boolean flag=true;
//Algoritmo
while(flag)
{
aux=proc.getTiempoCPU();
if (aux>0)
{
if (aux>=quantum)
{
proc.setTiempoCPU(aux-quantum);
suma_tiempo+=quantum;
cadena+="|"+proc.getIdProceso()+"| t"+suma_tiempo+" n";
}
else
{
proc.setTiempoCPU(0);
suma_tiempo+=aux;
cadena+="|"+proc.getIdProceso()+"| t"+suma_tiempo+" n";
}
}
//identifica si hay mas procesos por terminar
contador++;
if (contador<cola.size())
{
proc=(Proceso)cola.get(contador);
flag=find();
}
else
{
contador=0;
proc=(Proceso)cola.get(contador);
flag=find();
}
}
return cadena+"El tiempo fue: "+suma_tiempo;
}
private boolean find ()//encuentra procesos restantes
{
Proceso p;
boolean f=false;
for (int i=0; i<cola.size();i++)
{
p=(Proceso)cola.get(i);
if (p.getTiempoCPU()>0)
{
f=true;
break;
}
}
return f;
}
}

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close