Untitled
unknown
plain_text
a year ago
1.3 kB
8
Indexable
#include <stdio.h>
#include <limits.h>
struct process {
int at;
int bt;
int rt;
int wt;
int ct;
int tat;
};
void main() {
int i, n, q,curt = 0,r = 0,avgtat=0,avgwt=0;
printf("Enter the number of processes: ");
scanf("%d", &n);
struct process p[n];
for (i = 0; i < n; i++)
{
printf("Enter the arrival time and burst time of process %d:\n", i + 1);
scanf("%d%d", &p[i].at, &p[i].bt);
p[i].rt = p[i].bt;
p[i].wt = 0;
p[i].ct = 0;
p[i].tat = 0;
}
printf("Enter the time quantum: ");
scanf("%d", &q);
r = n;
while (r > 0) {
int cc = 0;
for (i=0;i<n;i++)
{
if (p[i].rt > 0 && p[i].at <= curt)
{
if (p[i].rt <= q)
{
curt += p[i].rt;
p[i].ct = curt;
p[i].tat = p[i].ct - p[i].at;
p[i].wt = p[i].tat - p[i].bt;
avgtat+=p[i].tat;
avgwt+=p[i].wt;
p[i].rt = 0;
r--;
cc = 1;
}
else
{
curt += q;
p[i].rt -= q;
cc = 1;
}
}
}
if (!cc)
{
curt++;
}
}
printf("\nProcess\tAT\tBT\tCT\tTAT\tWT\n");
for (i = 0; i < n; i++)
{
printf("%d\t%d\t%d\t%d\t%d\t%d\n", i + 1, p[i].at, p[i].bt, p[i].ct, p[i].tat, p[i].wt);
}
printf("Average Turn Around Time:%.2f\n",(float)avgtat/n);
printf("Average Waiting Time:%.2f\n",(float)avgwt/n);
}
Editor is loading...
Leave a Comment