ALGORITMO FIFO
/*
// SISTEMAS OPERATIVOS - ALGORITMO FIFO
//
// * PARALELO “A”
// * ISRAEL CUEVA.
// * ANGÉLICA ESPINOZA
// * CAROLINA ROJAS
//
*/
#include <stdio.h>
#include <stdlib.h>
main()
{
int intArregloSuma [10];
int intArregloTiempo [10];
int intArregloTiempoAuxiliar [10];
int intArregloRafagaAcumulada[10];
int intArregloRafaga [10];
int intArregloAuxiliar [10];
int intNumeroProceso = 0;
int intTiempo = 0;
int intSuma = 0;
double dblTep = 0;
double dblTrp = 0;
int cont = 0;
int p=0;
int intRafaga = 0;
int i = 0, j = 0, aux = 0;
int k=0;
// Ingreso de datos
printf(”\n\t\tINGRESO DE DATOS - FIFO”);
printf(”\n\nIngresa el numero de procesos: “);
scanf(”%d”, &intNumeroProceso);
system(”cls”);
for (i=0; i<intNumeroProceso; i++)
{
printf(”\n\t\tINGRESO DE DATOS”);
printf(”\n\nIngresa tiempo de llegada para el proceso [%d]: “,i+1);
scanf(”%d”, &intTiempo);
intArregloTiempo[i] = intTiempo;
intArregloTiempoAuxiliar[i] = intTiempo;
printf(”\nIngresa la rafaga de CPU para el proceso [%d]: “,i+1);
scanf(”%d”, &intRafaga);
intArregloRafaga[i] = intRafaga;
system(”cls”);
}
//Proceso para ordenar el arreglo
for( i=1; i<intNumeroProceso; i++)
{
j=i;
aux = intArregloTiempo[i];
while(j>0 && aux<intArregloTiempo[j-1])
{
intArregloTiempo[j] = intArregloTiempo[j-1];
j = j-1;
}
intArregloTiempo[j] = aux;
}
//Proceso ordenar la RCPU de acuerdo al tiempo de llegada de los procesos
while(cont<intNumeroProceso)
{
for(k=0;k<intNumeroProceso; k++)
{
if(intArregloTiempoAuxiliar[k] == intArregloTiempo[p])
{
intArregloAuxiliar[cont] = intArregloRafaga[k];
p++;
break;
}
}
cont++;
}
//Presentar Procesos por tiempo
printf(”\nOrden de los tiempos de llegada:”);
for(i=0; i<intNumeroProceso;i++)
{
printf(” |%d| “,intArregloTiempo[i]);
}
// Presentar Acumulacion de las ráfagas
printf(”\nAcumulacion rafagas:\t\t”);
for(i=0; i<intNumeroProceso;i++)
{
intSuma += intArregloAuxiliar[i];
intArregloRafagaAcumulada[i] = intSuma;
printf(” %d”,intArregloRafagaAcumulada[i]);
}
intSuma = 0;
//Presentar TR por proceso
intArregloSuma[0] = 0;
printf(”\n\n”);
for(i=0; i<intNumeroProceso;i++)
{
intSuma += intArregloAuxiliar[i];
intArregloSuma[i+1] = intSuma;
printf(”\nTR proceso %d: %d”,i+1,intArregloRafagaAcumulada[i]);
}
//Presentar TE por proesos
printf(”\n”);
for(i=0; i<intNumeroProceso;i++)
{
printf(”\nTE proceso %d: %d”,i+1,intArregloSuma[i]-intArregloTiempo[i]);
dblTep += intArregloSuma[i]-intArregloTiempo[i];
dblTrp += intArregloRafagaAcumulada[i];
}
//Presentar Tiempo espera total y tiempo retraso total
printf(”\n\nTEP: %f”,dblTep/intNumeroProceso);
printf(”\nTRP: %f\n\n”,dblTrp/intNumeroProceso);
}