domingo, 28 de noviembre de 2010

Ejemplos del Algoritmo SJF en Código C++

#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int np, sre, ses, i, b, c;
float a, pre, pes, s, nM;
float Tll[50], TS[50], TScop[50], TCo[50], TFi[50], TRe[50], TEs[50];
void main () {
cout<<"Ingrese el numero de procesos a planificar: ";
cin>>np; cout<<endl;
a=0; sre=0; ses=0;
for (i=0;i<np;i++){
cout<<"Ingrese el Tiempo de Llegada del proceso"<<i<<": ";
cin>>Tll[i]; cout<<endl;
cout<<"Ingrese el Tiempo de Servicio del proceso"<<i<<": ";
cin>>TS[i]; cout<<endl;
}
nM=TS[0];
for (i=1;i<np;i++){
if (TS[i]>nM) nM=TS[i];
}
TCo[0]=0;
TFi[0]=TS[0];
for (i=0;i<np;i++){
TScop[i]=TS[i];
}
s=0; c=0;
do{
b=1;
for (i=1;i<np;i++){
if (TScop[b]>TScop[i]){
a=TScop[i];
b=i;
}
}
TCo[b]=TFi[c];
TFi[b]=TCo[b]+TS[b];
TScop[b]=nM+1;
c=b;
s=s+1;
}while(s<(np-1));
for (i=0;i<np;i++){
TRe[i]=TFi[i]-Tll[i];
sre=sre+TRe[i];
TEs[i]=TCo[i]-Tll[i];
ses=ses+TEs[i];
}
pre=sre/np;
pes=ses/np;
cout<<endl;
cout<<"Proceso T.Llegada T.Servicio T.Comienzo T.Finalizacion T.Retorno T.Espera"<<endl;
for (i=0;i<np;i++){
cout<<" "<<i<<" "<<Tll[i]<<" "<<TS[i]<<" "<<TCo[i]<<" "<<TFi[i]<<" "<<TRe[i]<<" "<<TEs[i]<<endl;
}
cout<<"Promedio de Tiempo de Retorno: "<<pre<<endl;
cout<<"Promedio de Tiempo de Espera: "<<pes<<endl;
getch();
}



6 comentarios:

  1. gracias por los códigos, estaba buscando y al fin lo encontree...y de casualidad no tendrás de memoria estática y dinámica

    ResponderEliminar
  2. Buen código, solo le falta validar que los procesos con menor tamaño de procesamiento hallan llegado cundo los toma, del resto esta bn

    ResponderEliminar
    Respuestas
    1. puedes ayudarme con eso estuve intentando añadir eso pero no pude

      Eliminar
  3. Hola, gracias por el codigo, pero podrías decirme los nombres de cada variable??

    ResponderEliminar
  4. hola gracias por el codigo pero lo unico que no entiedo es como se llama la variable TScop le agradeceria por la informacion

    ResponderEliminar