#include <stdio.h>
int main( )
{
int i, NOP, sum= 0 , count= 0 , y, quant, wt= 0 , tat= 0 , at[ 10 ] , bt[ 10 ] , temp[ 10 ] ;
float avg_wt, avg_tat;
printf ( "Total number of processes in the system: " ) ; y = NOP;
for ( i= 0 ; i< NOP; i++ )
{
printf ( "\n Enter Arrival and Burst time of Process[%d]\n " , i
+ 1 ) ; temp[ i] = bt[ i] ;
}
printf ( "Enter the Time Quantum: " ) ;
printf ( "\n Process No \t Burst Time \t TAT \t Waiting Time " ) ; for ( sum= 0 , i= 0 ; y!= 0 ; )
{
if ( temp[ i] <= quant && temp[ i] > 0 )
{
sum += temp[ i] ;
temp[ i] = 0 ;
count = 1 ;
}
else if ( temp[ i] > 0 )
{
temp[ i] -= quant;
sum += quant;
}
if ( temp[ i] == 0 && count== 1 )
{
y--;
printf ( "\n P[%d]\t \t %d\t \t %d\t \t %d" , i
+ 1 , bt
[ i
] , sum
- at
[ i
] , sum
- at
[ i
] - bt
[ i
] ) ; wt += sum - at[ i] - bt[ i] ;
tat += sum - at[ i] ;
count = 0 ;
}
if ( i == NOP - 1 )
i = 0 ;
else if ( at[ i+ 1 ] <= sum)
i++;
else
i = 0 ;
}
avg_wt = ( float ) wt / NOP;
avg_tat = ( float ) tat / NOP;
printf ( "\n Average Turn Around Time: %f" , avg_tat
) ; printf ( "\n Average Waiting Time: %f\n " , avg_wt
) ; }
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKaW50IG1haW4oKSAKeyAKICAgIGludCBpLCBOT1AsIHN1bT0wLCBjb3VudD0wLCB5LCBxdWFudCwgd3Q9MCwgdGF0PTAsIGF0WzEwXSwgYnRbMTBdLCB0ZW1wWzEwXTsgCiAgICBmbG9hdCBhdmdfd3QsIGF2Z190YXQ7IAoKICAgIHByaW50ZigiVG90YWwgbnVtYmVyIG9mIHByb2Nlc3NlcyBpbiB0aGUgc3lzdGVtOiAiKTsgCiAgICBzY2FuZigiJWQiLCAmTk9QKTsgCiAgICB5ID0gTk9QOyAKCiAgICBmb3IoaT0wOyBpPE5PUDsgaSsrKSAKICAgIHsgCiAgICAgICAgcHJpbnRmKCJcbkVudGVyIEFycml2YWwgYW5kIEJ1cnN0IHRpbWUgb2YgUHJvY2Vzc1slZF1cbiIsIGkrMSk7IAogICAgICAgIHByaW50ZigiQXJyaXZhbCB0aW1lOiAiKTsgICAKICAgICAgICBzY2FuZigiJWQiLCAmYXRbaV0pOyAKICAgICAgICBwcmludGYoIkJ1cnN0IHRpbWU6ICIpOyAgCiAgICAgICAgc2NhbmYoIiVkIiwgJmJ0W2ldKTsgCiAgICAgICAgdGVtcFtpXSA9IGJ0W2ldOyAgIAogICAgfSAKCiAgICBwcmludGYoIkVudGVyIHRoZSBUaW1lIFF1YW50dW06ICIpOyAKICAgIHNjYW5mKCIlZCIsICZxdWFudCk7ICAKCiAgICBwcmludGYoIlxuUHJvY2VzcyBObyBcdEJ1cnN0IFRpbWUgXHRUQVQgXHRXYWl0aW5nIFRpbWUgIik7IAogICAgZm9yKHN1bT0wLCBpPTA7IHkhPTA7ICkgCiAgICB7IAogICAgICAgIGlmKHRlbXBbaV0gPD0gcXVhbnQgJiYgdGVtcFtpXSA+IDApICAKICAgICAgICB7IAogICAgICAgICAgICBzdW0gKz0gdGVtcFtpXTsgCiAgICAgICAgICAgIHRlbXBbaV0gPSAwOyAKICAgICAgICAgICAgY291bnQgPSAxOyAKICAgICAgICB9IAogICAgICAgIGVsc2UgaWYodGVtcFtpXSA+IDApIAogICAgICAgIHsgCiAgICAgICAgICAgIHRlbXBbaV0gLT0gcXVhbnQ7IAogICAgICAgICAgICBzdW0gKz0gcXVhbnQ7IAogICAgICAgIH0gCiAgICAgICAgaWYodGVtcFtpXT09MCAmJiBjb3VudD09MSkgCiAgICAgICAgeyAKICAgICAgICAgICAgeS0tOyAgIAogICAgICAgICAgICBwcmludGYoIlxuUFslZF1cdFx0JWRcdFx0JWRcdFx0JWQiLCBpKzEsIGJ0W2ldLCBzdW0tYXRbaV0sIHN1bS1hdFtpXS1idFtpXSk7IAogICAgICAgICAgICB3dCArPSBzdW0gLSBhdFtpXSAtIGJ0W2ldOyAKICAgICAgICAgICAgdGF0ICs9IHN1bSAtIGF0W2ldOyAgCiAgICAgICAgICAgIGNvdW50ID0gMDsgCiAgICAgICAgfSAKICAgICAgICBpZihpID09IE5PUCAtIDEpIAogICAgICAgICAgICBpID0gMDsgCiAgICAgICAgZWxzZSBpZihhdFtpKzFdIDw9IHN1bSkgCiAgICAgICAgICAgIGkrKzsgCiAgICAgICAgZWxzZSAKICAgICAgICAgICAgaSA9IDA7IAogICAgfSAKCiAgICBhdmdfd3QgPSAoZmxvYXQpd3QgLyBOT1A7IAogICAgYXZnX3RhdCA9IChmbG9hdCl0YXQgLyBOT1A7IAogICAgcHJpbnRmKCJcbkF2ZXJhZ2UgVHVybiBBcm91bmQgVGltZTogJWYiLCBhdmdfdGF0KTsgCiAgICBwcmludGYoIlxuQXZlcmFnZSBXYWl0aW5nIFRpbWU6ICVmXG4iLCBhdmdfd3QpOyAKfQ==