Te damos la bienvenida a nuestra comunidad, ahora hallarás la solucíon que estabas buscando.
Ejemplo: algoritmo round robin en c
#include intmain()int i, limit, total =0, x, counter =0, time_quantum;int wait_time =0, turnaround_time =0, arrival_time[10], burst_time[10], temp[10];float average_wait_time, average_turnaround_time;printf("nEnter Total Number of Processes:t");scanf("%d",&limit);
x = limit;for(i =0; i < limit; i++)printf("nEnter Details of Process[%d]n", i +1);printf("Arrival Time:t");scanf("%d",&arrival_time[i]);printf("Burst Time:t");scanf("%d",&burst_time[i]);
temp[i]= burst_time[i];printf("nEnter Time Quantum:t");scanf("%d",&time_quantum);printf("nProcess IDttBurst Timet Turnaround Timet Waiting Timen");for(total =0, i =0; x !=0;)if(temp[i]<= time_quantum && temp[i]>0)
total = total + temp[i];
temp[i]=0;
counter =1;elseif(temp[i]>0)
temp[i]= temp[i]- time_quantum;
total = total + time_quantum;if(temp[i]==0&& counter ==1)
x--;printf("nProcess[%d]tt%dtt %dttt %d", i +1, burst_time[i], total - arrival_time[i], total - arrival_time[i]- burst_time[i]);
wait_time = wait_time + total - arrival_time[i]- burst_time[i];
turnaround_time = turnaround_time + total - arrival_time[i];
counter =0;if(i == limit -1)
i =0;elseif(arrival_time[i +1]<= total)
i++;else
i =0;
average_wait_time = wait_time *1.0/ limit;
average_turnaround_time = turnaround_time *1.0/ limit;printf("nnAverage Waiting Time:t%f", average_wait_time);printf("nAvg Turnaround Time:t%fn", average_turnaround_time);return0;
Si crees que ha resultado de ayuda este post, sería de mucha ayuda si lo compartieras con más desarrolladores de esta manera nos ayudas a difundir nuestra información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)