#include <stdio.h>
int main( ) {
int p[ 10 ] , at[ 10 ] , bt[ 10 ] ;
int i, j, temp, n;
float awt = 0 , atat = 0 ;
int over
= 0 , time = 0 , count
, sum_wait
= 0 , sum_tat
= 0 , start
; printf ( "Enter number of processes:\n " ) ; for ( i = 0 ; i < n; i++ ) {
p[ i] = i + 1 ;
}
printf ( "Enter arrival time of each process:\n " ) ; for ( i = 0 ; i < n; i++ ) {
}
printf ( "Enter burst time of each process:\n " ) ; for ( i = 0 ; i < n; i++ ) {
}
// Sort processes by arrival time using bubble sort
for ( i = 0 ; i < n - 1 ; i++ ) {
for ( j = i+ 1 ; j < n; j++ ) {
if ( at[ i] > at[ j] ) {
// Swap arrival times
temp = at[ i] ;
at[ i] = at[ j] ;
at[ j] = temp;
// Swap burst times
temp = bt[ i] ;
bt[ i] = bt[ j] ;
bt[ j] = temp;
// Swap process IDs
temp = p[ i] ;
p[ i] = p[ j] ;
p[ j] = temp;
}
}
}
printf ( "\n P\t AT\t BT\t start time \t end time\t WT\t TAT\n " ) ; while ( over< n) {
count= 0 ;
for ( i= over; i< n; i++ ) {
count++;
else
break ;
}
if ( count> 1 ) {
for ( i= over; i< over+ count- 1 ; i++ ) {
for ( j= i+ 1 ; j< over+ count; j++ ) {
if ( bt[ i] > bt[ j] ) {
// Swap arrival times
temp = at[ i] ;
at[ i] = at[ j] ;
at[ j] = temp;
// Swap burst times
temp = bt[ i] ;
bt[ i] = bt[ j] ;
bt[ j] = temp;
// Swap process IDs
temp = p[ i] ;
p[ i] = p[ j] ;
p[ j] = temp;
}
}
}
}
printf ( "p[%d]\t %d\t %d\t %d\t %d\t %d\t %d" , p
[ over
] , at
[ over
] , bt
[ over
] , start
, time , time
- at
[ over
] - bt
[ over
] , time
- at
[ over
] ) ; sum_wait+= time- at[ over] - bt[ over] ;
sum_tat+= time- at[ over] ;
over++;
}
atat= ( float ) sum_tat/ n;
awt= ( float ) sum_wait/ n;
printf ( "\n Average Turnaround Time = %.2f" , atat
) ; printf ( "\n Average Waiting Time = %.2f\n " , awt
) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKaW50IG1haW4oKSB7CiAgICBpbnQgcFsxMF0sIGF0WzEwXSwgYnRbMTBdOwogICAgaW50IGksIGosIHRlbXAsIG47CiAgICBmbG9hdCBhd3QgPSAwLCBhdGF0ID0gMDsKaW50IG92ZXI9MCx0aW1lPTAsY291bnQsc3VtX3dhaXQ9MCxzdW1fdGF0PTAsc3RhcnQ7CiAgICBwcmludGYoIkVudGVyIG51bWJlciBvZiBwcm9jZXNzZXM6XG4iKTsKICAgIHNjYW5mKCIlZCIsICZuKTsKIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwW2ldID0gaSArIDE7CiAgICB9CiAKICAgIHByaW50ZigiRW50ZXIgYXJyaXZhbCB0aW1lIG9mIGVhY2ggcHJvY2VzczpcbiIpOwogICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHNjYW5mKCIlZCIsICZhdFtpXSk7CiAgICB9CiAKICAgIHByaW50ZigiRW50ZXIgYnVyc3QgdGltZSBvZiBlYWNoIHByb2Nlc3M6XG4iKTsKICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBzY2FuZigiJWQiLCAmYnRbaV0pOwogICAgfQogCiAgICAvLyBTb3J0IHByb2Nlc3NlcyBieSBhcnJpdmFsIHRpbWUgdXNpbmcgYnViYmxlIHNvcnQKICAgIGZvciAoaSA9IDA7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgZm9yIChqID0gaSsxOyBqIDwgbjsgaisrKSB7CiAgICAgICAgICAgIGlmIChhdFtpXSA+IGF0W2pdKSB7CiAgICAgICAgICAgICAgICAvLyBTd2FwIGFycml2YWwgdGltZXMKICAgICAgICAgICAgICAgIHRlbXAgPSBhdFtpXTsKICAgICAgICAgICAgICAgIGF0W2ldID0gYXRbal07CiAgICAgICAgICAgICAgICBhdFtqXSA9IHRlbXA7CiAKICAgICAgICAgICAgICAgIC8vIFN3YXAgYnVyc3QgdGltZXMKICAgICAgICAgICAgICAgdGVtcCA9IGJ0W2ldOwogICAgICAgICAgICAgICAgYnRbaV0gPSBidFtqXTsKICAgICAgICAgICAgICAgIGJ0W2pdID0gdGVtcDsKIAogICAgICAgICAgICAgICAgLy8gU3dhcCBwcm9jZXNzIElEcwogICAgICAgICAgICAgICAgdGVtcCA9IHBbaV07CiAgICAgICAgICAgICAgICBwW2ldID0gcFtqXTsKICAgICAgICAgICAgICAgIHBbal0gPSB0ZW1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcHJpbnRmKCJcblBcdEFUXHRCVFx0c3RhcnQgdGltZSBcdCBlbmQgdGltZVx0IFdUXHQgVEFUXG4iKTsKICAgIHdoaWxlKG92ZXI8bil7CiAgICAJY291bnQ9MDsKICAgIAlmb3IoaT1vdmVyO2k8bjtpKyspewogICAgCQlpZihhdFtpXTw9dGltZSkKICAgIAkJY291bnQrKzsKICAgIAkJZWxzZQogICAgCQlicmVhazsKICAgIAl9CiAgICAJaWYoY291bnQ+MSl7CiAgICAJCWZvcihpPW92ZXI7aTxvdmVyK2NvdW50LTE7aSsrKXsKICAgIAkJCWZvcihqPWkrMTtqPG92ZXIrY291bnQ7aisrKXsKICAgIAkJCWlmIChidFtpXSA+IGJ0W2pdKSB7CiAgICAgICAgICAgICAgICAvLyBTd2FwIGFycml2YWwgdGltZXMKICAgICAgICAgICAgICAgIHRlbXAgPSBhdFtpXTsKICAgICAgICAgICAgICAgIGF0W2ldID0gYXRbal07CiAgICAgICAgICAgICAgICBhdFtqXSA9IHRlbXA7CiAKICAgICAgICAgICAgICAgIC8vIFN3YXAgYnVyc3QgdGltZXMKICAgICAgICAgICAgICAgdGVtcCA9IGJ0W2ldOwogICAgICAgICAgICAgICAgYnRbaV0gPSBidFtqXTsKICAgICAgICAgICAgICAgIGJ0W2pdID0gdGVtcDsKIAogICAgICAgICAgICAgICAgLy8gU3dhcCBwcm9jZXNzIElEcwogICAgICAgICAgICAgICAgdGVtcCA9IHBbaV07CiAgICAgICAgICAgICAgICBwW2ldID0gcFtqXTsKICAgICAgICAgICAgICAgIHBbal0gPSB0ZW1wOwogICAgICAgICAgICB9CiAgICAgICAgfQkKICAgIAkJCX0KICAgIAkJfQogICAgCXN0YXJ0PXRpbWU7CiAgICAJdGltZSs9YnRbb3Zlcl07CiAgICAJcHJpbnRmKCJwWyVkXVx0ICVkXHQgJWRcdCAlZFx0ICVkXHQgJWRcdCAlZCIscFtvdmVyXSxhdFtvdmVyXSxidFtvdmVyXSxzdGFydCx0aW1lLHRpbWUtYXRbb3Zlcl0tYnRbb3Zlcl0sdGltZS1hdFtvdmVyXSk7CiAgICAJc3VtX3dhaXQrPXRpbWUtYXRbb3Zlcl0tYnRbb3Zlcl07CiAgICAJc3VtX3RhdCs9dGltZS1hdFtvdmVyXTsKICAgIAlvdmVyKys7CiAgICB9CiAgICBhdGF0PShmbG9hdClzdW1fdGF0L247CiAgICBhd3Q9KGZsb2F0KXN1bV93YWl0L247CiAKICAgIHByaW50ZigiXG5BdmVyYWdlIFR1cm5hcm91bmQgVGltZSA9ICUuMmYiLCBhdGF0KTsKICAgIHByaW50ZigiXG5BdmVyYWdlIFdhaXRpbmcgVGltZSA9ICUuMmZcbiIsIGF3dCk7CiAKICAgIHJldHVybiAwOwp9