Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PUNO-PERU
2018
FCFS “Firts-Come, First-Served”
Conclusión:
Este algoritmo esta bien lo único que que los procesos largos hacen esperar
mucho a los cortos.
Predecible.
-El tiempo medio de servicio es muy variable en función del número de
procesos y su duración.
CODIGO:
#include <iostream>
int main()
cin>>np; cout<<endl;
for (i=0;i<np;i++){
cin>>Tll[i]; cout<<endl;
cin>>TS[i]; cout<<endl;
b=0;
c=0;
for (i=0;i<np;i++){
TFi[i]=b+TS[i];
b=b+TS[i];
}TCo[0]=0;
for (i=1;i<np;i++){
TCo[i]=c+TS[i-1];
c=c+TS[i-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<<"\nProceso\t\t T.Llegada\t T.Servicio\t T.Retorno\t T.Espera"<<endl;
for (i=0;i<np;i++){
cout<<"\n\n";
espacio=0;
for (i=0;i<np;i++)
cout<<"Proceso P"<<i+1<<":";
if(espacio==0){
for(j=0;j<TS[0];j++){
cout<<"#|";
espacio=espacio + TS[0];
cout<<"\n";
else
{
for(j=0;j<TFi[i-1];j++)
cout<<" |";
for(j=0;j<TS[i];j++)
cout<<"#|";
espacio=espacio + TS[i];
}cout<<"\n";
return 0;
Ejemplo:
CODIGO:
#include<iostream>
int main () {
#include <iostream>
int main()
int Tll[50],Ts[50],rt[50],tiempo_final,i,small;
int remain=0,n,tiempo,suma_espera=0,suma_retorno=0;
cin>>n;
cout<<endl;
for(i=0;i<n;i++)
cin>>Tll[i]; cout<<endl;
cin>>Ts[i];cout<<endl;
rt[i]=Ts[i];
rt[9]=9999;
for(tiempo=0;remain!=n;tiempo++)
small=9;
for(i=0;i<n;i++)
small=i;
rt[small]--;
if(rt[small]==0)
remain++;
tiempo_final=tiempo+1;
cout<<"P["<<small+1<<"]"<<"\t\t "<<tiempo_final-Tll[small]<<"\t\t
"<<tiempo_final-Ts[small]-Tll[small]<<endl;
suma_espera+=tiempo_final-Ts[small]-Tll[small];
suma_retorno+=tiempo_final-Tll[small];
return 0;
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.
#include <iostream>
int main()
{
int i,j,n,tiempo,remain,flag=0,quantum;
int tiempo_espera=0,tiempo_retorno=0, Tll[50],Ts[50],rt[50];
cout<<"Ingrese el numero de procesos a planificar: ";
cin>>n;
cout<<endl;
remain=n;
for(i=0;i<n;i++)
{
cout<<"Ingrese el Tiempo de Llegada del proceso"<<i+1<<": ";
cin>>Tll[i]; cout<<endl;
rt[i]=Ts[i];
}
cout<<"Ingrese el Quantum:\t";
cin>>quantum;
cout<<"\n\nProceso\t|Tiempo de Retorno|tiemponpo de Espera\n\n";
for(tiempo=0,i=0;remain!=0;)
{
if(rt[i]<=quantum && rt[i]>0)
{
tiempo+=rt[i];
rt[i]=0;
flag=1;
}
else if(rt[i]>0)
{
rt[i]-=quantum;
tiempo+=quantum;
}
if(rt[i]==0 && flag==1)
{
remain--;
cout<<"P["<<i+1<<"]"<<"\t\t "<<tiempo-Tll[i]<<"\t\t "<<tiempo-Tll[i]-
Ts[i]<<endl;
tiempo_espera+=tiempo-Tll[i]-Ts[i];
tiempo_retorno+=tiempo-Tll[i];
flag=0;
}
if(i==n-1)
i=0;
else if(Tll[i+1]<=tiempo)
i++;
else
i=0;
}
cout<<"Promedio tiempo de espera="<<tiempo_espera*1.0<<endl;
cout<<"Promedio tiempo de retorno = "<<tiempo_retorno*1.0<<endl;
return 0;
}