I am having problems calculating the average turn around time and average waiting time in my program. Can anyone give me some advice where i am going wrong please?![]()
I am first trying to work out the turn around time and then the waiting time so that i can use qaunta to subract away from the TAT.
Code:/* Process each priority */ for ( sb = 0, nsb = 0, priority = 0; priority < PRIORITIES; priority++ ) { sb = nsb; printf("Starting priority %d. \n", priority ); /* process this priority level */ for ( fp = 1, qsum = 0, ntp = 0, pcur = 0; ; pcur++) { /* If we have gone too far */ if ( sb + pcur == num_procs || pq[ sb + pcur ].priority > priority ) { if (fp ) /* Is this the first pass? */ { nsb = sb + pcur; /* Keep the nsb in the same priority group */ fp = 0; ntp += qsum; printf("Priority %d, qsum %d\n", priority, qsum); } pcur = 0; /* Reset the bucket */ if ( ntp == 0 ) /* Do we have any that we need to process? */ { printf( "Priority %d finished. \n\n", priority); break; } } /* if we have a quantum to process */ if ( pq [sb + pcur ].quantum > 0 ) { if ( fp ) /* On the first pass, sum bucket values */ { qsum += pq [ sb + pcur ].quantum; pq[ sb + pcur ].started = timer; // make note when process starts printf("%s started at %d\n", pq[ sb + pcur ].id, pq[ sb + pcur].started); } ntp--; printf("%s %d %d\t pq [ %d ]\t ntp: %d\n",pq[ sb + pcur ].id, pq[ sb + pcur].quantum, priority, sb + pcur, ntp); pq[sb + pcur ].quantum--; timer++; /* If process ended, make note of when it ended */ if ( pq [sb + pcur ].quantum == 0 ) { pq[sb + pcur].finished = timer; // make note when the process ends tat = pq[sb + pcur].finished - pq[sb + pcur].started; atat += tat; // add all tat times together to work out average printf("%s finished at %d tat of %f\n", pq[sb + pcur].id, pq[sb + pcur].finished, tat); } } } } printf("All Process have completed\n"); printf("Average Turn Around Time: %f \n", atat / num_procs);



LinkBack URL
About LinkBacks
I am first trying to work out the turn around time and then the waiting time so that i can use qaunta to subract away from the TAT. 


