Evento Docente Universida del Mar

Clase del algoritmo SJFCooperativo

import java.util.Arrays;
import java.util.Vector;

public class SJFCooperativo {
/*ESTA CLASE RECIBE UN VECTOR CON TODOS LOS DATOS QUE SE NECESITAN PARA
EMPEZAR A EJECUTAR EL ALGORITMO, EN ESTE SE EVALUA EL TIEMPO DE RAFAGA
QUE SE LE ASIGNARON A LOS PROCESOS, Y EJECUTA EL PROCESO QUE TIENE EL TIEMPO DE RAFAGA MENOR*/
Vector VectorProcesos;
private int DoubleTiempoEspera;
private double DoubleTiempoEspera1;
private int NumeroProceso[];
Arrays vector;
private int vectoraux[];
private String ProcesosNombres[];
/*EN EL CONTRUCTOR SE RECIBE EL VECTOR CON TODOS LOS DATOS DE LOS PROCESOS*/
public SJFCooperativo(Vector VectorProcesos){
this.VectorProcesos = VectorProcesos;
vectoraux=new int[VectorProcesos.size()];
NumeroProceso=new int[VectorProcesos.size()];
ProcesosNombres=new String[VectorProcesos.size()];
}
/*EN ESTA PARTE SE CALCULA EL TIEMPO PROMEDIO DE ESPERA DEL ALGORTIMO*/
public void getTiempoEsperaPromedio(){
int i=0;
for (i=0;i vectoraux[i]=((Procesos)VectorProcesos.elementAt(i)).getIntTiempoRafaga();
ProcesosNombres[i]=((Procesos)VectorProcesos.elementAt(i)).getStringNombre();
NumeroProceso[i]=((Procesos)VectorProcesos.elementAt(i)).getIntTiempoLlegada()+1;
}
ordena(); /*ordenando los procesos*/
for (i=0;i System.out.println(ProcesosNombres[i]+">>"+vectoraux[i]);
}

DoubleTiempoEspera=vectoraux[0];
for (i=1;i DoubleTiempoEspera+=vectoraux[i];
vectoraux[i]=DoubleTiempoEspera;
}

DoubleTiempoEspera1=0;
for (i=0;i DoubleTiempoEspera1+=vectoraux[i];
}

DoubleTiempoEspera1=DoubleTiempoEspera1/VectorProcesos.size();
}
public void ordena(){
int aux,aux2,k,i;
String aux1;

for(i=1;i aux = vectoraux[i];
aux1= ProcesosNombres[i];
aux2=NumeroProceso[i];
k=i-1;
while (k >= 0 && aux < vectoraux[k]){
vectoraux[k+1] = vectoraux[k];
ProcesosNombres[k+1]=ProcesosNombres[k];
NumeroProceso[k+1]=NumeroProceso[k];
k=k-1;
}
vectoraux[k+1] = aux;
ProcesosNombres[k+1]=aux1;
NumeroProceso[k+1]=aux2;
}
}
/*DEVUELVE UN VECTOR CON EL NUEVO TIEMPO DE RAFAGA*/
public int[] getValores(){
return vectoraux;
}
/*SE DEVUELVE LOS NOMBRES DE LOS PROCESOS*/
public String []getNombre(){
return ProcesosNombres;
}
/*SE DEVUELVE EL NUMERO DEL PROCESO*/
public int[] getNumeroProceso(){
return NumeroProceso;
}
/*DEVUELVE EL TIEMPO PROMEDIO DE ESPERA*/
public double imprimeResultado(){
return DoubleTiempoEspera1;
}
}

Tags:

0 comentarios: