Round robin es un método para seleccionar todos los elementos en un grupo de manera equitativa y en un orden racional, normalmente comenzando por el primer elemento de la lista hasta llegar al último y empezando de nuevo desde el primer elemento. El nombre del algoritmo viene del principio de Round-Roubin conocido de otros campos, donde cada persona toma una parte de un algo compartido en cantidades parejas.
Una forma sencilla de entender el round robin es imaginar una secuencia para "tomar turnos".
Para averiguar los pasos de ciclos de procesos totales se toman todos los números de procesos y se calculan con los procesos necesarios para la realización de estos...
Suponga que hay tres procesos y se desea averiguar cuanto tarda.
- proceso A: 3 veces
- proceso B: 4 veces
- proceso C: 5 veces
2 comentarios:
necesito el codigo de este porfavor en cualquier lenguaje c# java lazarus
#define listo 0
#define ejecutado 1
#define terminado 2
#define bloqueado 3
typedef struct proceso{
int nombre;
int tam;
int pc;
int estado;
};
proceso listaproceso[5];
int quantum=3;
int exeproceso=0;
int limite=0;
int main(){
listaproceso[0].nombre=0;
listaproceso[0].tam=17;
listaproceso[0].pc;
listaproceso[0].estado=listo;
listaproceso[1].nombre=10;
listaproceso[1].tam=20;
listaproceso[1].pc;
listaproceso[1].estado=listo;
listaproceso[2].nombre=5;
listaproceso[2].tam=7;
listaproceso[2].pc;
listaproceso[2].estado=listo;
listaproceso[3].nombre=8;
listaproceso[3].tam=15;
listaproceso[3].pc;
listaproceso[3].estado=listo;
listaproceso[4].nombre=6;
listaproceso[4].tam=9;
listaproceso[4].pc;
listaproceso[4].estado=listo;
while(limite<5){
for(int i=0;i<5;i++){
printf("\nproceso: %d\n",listaproceso[i].nombre);
printf("\ntamaño: %d\n", listaproceso[i].tam);
printf("\nestado: %d\n", listaproceso[i].estado);
printf("\navance: %d\n", listaproceso[i].pc);
if (listaproceso[i].estado==listo){
listaproceso[i].estado=ejecutado;
for(int j=0; j<quantum; j++){
printf("\nproceso: %d\n",listaproceso[i].nombre);
printf("\ntamaño: %d\n", listaproceso[i].tam);
listaproceso[i].pc+=1;
}
if(listaproceso[i].pc==listaproceso[i].tam){
listaproceso[i].estado=terminado;
limite++;
}
else
listaproceso[i].estado=listo;
}
}
}
getch();
return 0;
}
******tiene un error pero igual ya es mas facil encontrarlo o no??
Publicar un comentario