#include <stdio.h>
int main() {
int n
, tq
, i
, time = 0, done
= 0; int bt[20], rem[20], wt[20], tat[20];
printf("Enter number of processes: ");
if (n <= 0) {
printf("Invalid number of processes.\n"); return 0;
}
printf("Enter burst time for each process:\n"); for (i = 0; i < n; i++) {
rem[i] = bt[i];
wt[i] = 0; // Initialize waiting time
}
printf("Enter time quantum: ");
if (tq <= 0) {
printf("Invalid time quantum.\n"); return 0;
}
while (done < n) {
for (i = 0; i < n; i++) {
if (rem[i] > 0) {
if (rem[i] > tq) {
rem[i] -= tq;
} else {
rem[i] = 0;
done++;
}
}
}
}
float total_wt = 0, total_tat = 0;
for (i = 0; i < n; i++) {
tat[i] = wt[i] + bt[i];
total_wt += wt[i];
total_tat += tat[i];
}
printf("\nProcess\tBT\tWT\tTAT\n"); for (i = 0; i < n; i++) {
printf("P%d\t%d\t%d\t%d\n", i
+ 1, bt
[i
], wt
[i
], tat
[i
]); }
printf("\nAverage Waiting Time = %.2f", total_wt
/ n
); printf("\nAverage Turnaround Time = %.2f\n", total_tat
/ n
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIGludCBuLCB0cSwgaSwgdGltZSA9IDAsIGRvbmUgPSAwOwogICAgaW50IGJ0WzIwXSwgcmVtWzIwXSwgd3RbMjBdLCB0YXRbMjBdOwoKICAgIHByaW50ZigiRW50ZXIgbnVtYmVyIG9mIHByb2Nlc3NlczogIik7CiAgICBzY2FuZigiJWQiLCAmbik7CgogICAgaWYgKG4gPD0gMCkgewogICAgICAgIHByaW50ZigiSW52YWxpZCBudW1iZXIgb2YgcHJvY2Vzc2VzLlxuIik7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgcHJpbnRmKCJFbnRlciBidXJzdCB0aW1lIGZvciBlYWNoIHByb2Nlc3M6XG4iKTsKICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoIlAlZDogIiwgaSArIDEpOwogICAgICAgIHNjYW5mKCIlZCIsICZidFtpXSk7CiAgICAgICAgcmVtW2ldID0gYnRbaV07CiAgICAgICAgd3RbaV0gPSAwOyAgLy8gSW5pdGlhbGl6ZSB3YWl0aW5nIHRpbWUKICAgIH0KCiAgICBwcmludGYoIkVudGVyIHRpbWUgcXVhbnR1bTogIik7CiAgICBzY2FuZigiJWQiLCAmdHEpOwoKICAgIGlmICh0cSA8PSAwKSB7CiAgICAgICAgcHJpbnRmKCJJbnZhbGlkIHRpbWUgcXVhbnR1bS5cbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIHdoaWxlIChkb25lIDwgbikgewogICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgaWYgKHJlbVtpXSA+IDApIHsKICAgICAgICAgICAgICAgIGlmIChyZW1baV0gPiB0cSkgewogICAgICAgICAgICAgICAgICAgIHRpbWUgKz0gdHE7CiAgICAgICAgICAgICAgICAgICAgcmVtW2ldIC09IHRxOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aW1lICs9IHJlbVtpXTsKICAgICAgICAgICAgICAgICAgICB3dFtpXSA9IHRpbWUgLSBidFtpXTsKICAgICAgICAgICAgICAgICAgICByZW1baV0gPSAwOwogICAgICAgICAgICAgICAgICAgIGRvbmUrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmbG9hdCB0b3RhbF93dCA9IDAsIHRvdGFsX3RhdCA9IDA7CgogICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHRhdFtpXSA9IHd0W2ldICsgYnRbaV07CiAgICAgICAgdG90YWxfd3QgKz0gd3RbaV07CiAgICAgICAgdG90YWxfdGF0ICs9IHRhdFtpXTsKICAgIH0KCiAgICBwcmludGYoIlxuUHJvY2Vzc1x0QlRcdFdUXHRUQVRcbiIpOwogICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHByaW50ZigiUCVkXHQlZFx0JWRcdCVkXG4iLCBpICsgMSwgYnRbaV0sIHd0W2ldLCB0YXRbaV0pOwogICAgfQoKICAgIHByaW50ZigiXG5BdmVyYWdlIFdhaXRpbmcgVGltZSAgICAgPSAlLjJmIiwgdG90YWxfd3QgLyBuKTsKICAgIHByaW50ZigiXG5BdmVyYWdlIFR1cm5hcm91bmQgVGltZSAgPSAlLjJmXG4iLCB0b3RhbF90YXQgLyBuKTsKCiAgICByZXR1cm4gMDsKfQo=