Código
#include
int main ()
{
int en [10], bt [10], rt [10], endTime, i, el más pequeño;
int restantes = 0, n, tiempo, sum_wait = 0, sum_turnaround = 0;
printf (“Ingrese no de procesos:”);
scanf (“% d”, & n);
para (i = 0; i <n; i ++)
{
printf (“Ingrese la hora de llegada para el proceso P% d:”, i + 1);
scanf (“% d”, y en [i]);
printf (“Ingrese el tiempo de ráfaga para el proceso P% d:”, i + 1);
scanf (“% d”, & bt [i]);
rt [i] = bt [i];
}
printf (“\ n \ nProceso \ t | Tiempo de respuesta | Tiempo de espera \ n \ n”);
rt [9] = 9999;
for (tiempo = 0; permanecer! = n; tiempo ++)
{
más pequeño = 9;
para (i = 0; i <n; i ++)
{
if (en [i] <= tiempo && rt [i] 0)
{
más pequeño = i;
}
}
rt [el más pequeño] -;
if (rt [el más pequeño] == 0)
{
permanecer ++;
endTime = tiempo + 1;
printf (“\ nP [% d] \ t | \ t% d \ t | \ t% d”, más pequeño + 1, endTime-at [más pequeño], endTime-bt [más pequeño] -at [más pequeño]);
sum_wait + = endTime-bt [más pequeño] -at [más pequeño];
sum_turnaround + = endTime-at [más pequeño];
}
}
printf (“\ n \ nPromedio de tiempo de espera =% f \ n”, sum_wait * 1.0 / n);
printf (“Tiempo de respuesta promedio =% f”, sum_turnaround * 1.0 / 5);
devuelve 0;
}
Explicación del código
La línea no 8-15 se usa para tomar entradas. Las variables de matriz `at` y` bt` almacenan el tiempo de llegada y el tiempo de ráfaga de los procesos.
La matriz `rt` almacena el tiempo restante de los procesos que inicialmente son iguales al tiempo de ráfaga de los procesos. Este es el momento de completar la ejecución de todos los procesos.
La línea no 18 inicia un ciclo donde el tiempo comienza desde cero, la línea no 20 a la 27 se usa para encontrar un proceso que tenga el menor tiempo restante y su tiempo de llegada es menor o igual que el tiempo actual. Esta condición se verifica en cada unidad de tiempo, es por eso que el tiempo se incrementa en 1 (tiempo ++).
La línea no 26 se usa para imprimir el tiempo de llegada y el tiempo de ráfaga para los procesos terminados. En este momento, la variable `tiempo` da el tiempo de inicio del proceso.
Por lo tanto, Tiempo de respuesta = (tiempo + tiempo de ráfaga-hora de llegada),
Tiempo de espera = (hora – hora de llegada)
En la línea no 28, el tiempo restante para el proceso más corto se reduce en uno ya que el tiempo se incrementa en uno.
Si un proceso en particular acaba de terminar / completarse, entonces satisface la condición en la línea no 29 .
Dado que el tiempo variable almacena el tiempo actual, y el proceso se estaba ejecutando en este momento, por lo tanto, su tiempo de finalización = tiempo + 1 ( línea no 32 ).
Ya que
tiempo de ráfaga + tiempo de espera = hora de finalización – Hora de inicio
por lo tanto
tiempo de espera = tiempo final de tiempo de ráfaga-hora de llegada
El tiempo de espera y el tiempo de respuesta de todos los procesos se resumen y se dividen entre n para dar su promedio.
- ¿Cuál es una mejor universidad entre NIT Silchar y KIIT University para CSE en términos de facultad, exposición, colocación, actividades co-curriculares, investigación, educación, programa de tecnología, etc.?
- ¿Cuál es la diferencia entre informática, ingeniería informática e ingeniería de software? ¿Cómo es el alcance de TI en comparación con SE o CS? ¿Es la informática una buena opción para especializarse en el desarrollo de aplicaciones móviles?
- Obtuve electricidad y comunicación en MUJ en la primera ronda. ¿Cuáles son mis posibilidades de recibir asesoramiento de CSE en 2015 en Manipal?
- ¿Cuál es el mejor lenguaje para la programación competitiva? Por ejemplo, fuera de C, C ++, Java y Python, ¿cuál sería el mejor lenguaje para especializarse en competencias de programación?
- Tengo CSE en JUET, Guna, ¿debería hacerlo?