Skip to content

Instantly share code, notes, and snippets.

@B45i
Created February 23, 2017 09:13
Show Gist options
  • Select an option

  • Save B45i/c450daddbd8aac2a6f6be2b2cc629150 to your computer and use it in GitHub Desktop.

Select an option

Save B45i/c450daddbd8aac2a6f6be2b2cc629150 to your computer and use it in GitHub Desktop.
#include "stdio.h"
struct proc{
int bt;
int tat;
int wt;
int pid;
};
int main(){
int n,i,j;
float totTat = 0,totWt = 0;
printf("Enter Number of process: ");
scanf("%d",&n);
struct proc process[n];
struct proc temp;
for(i = 0;i<n;i++){
printf("Enter Burst time for process %d: ",i+1);
scanf("%d",&process[i].bt);
process[i].pid = i+1;
}
for(i = 0;i<n;i++){
for(j = 0;j<n-i-1;j++){
if(process[j].bt > process[j+1].bt){
temp = process[j];
process[j]= process[j+1];
process[j+1] = temp;
}
}
}
process[0].wt = 0;
process[0].tat = process[0].bt;
totTat = process[0].tat;
totWt = process[0].wt;
printf("Process id\tWaiting time\tBurst Time\tTAT\n");
printf("------------------------------------------------------\n");
printf("P%d\t\t%d\t\t%d\t\t%d\n",process[0].pid,process[0].wt,process[0].bt,process[0].tat);
for(i=1;i<n;i++){
process[i].wt = process[i-1].tat;
process[i].tat = process[i].bt+process[i].wt;
totTat += process[i].tat;
totWt += process[i].wt;
printf("P%d\t\t%d\t\t%d\t\t%d\n",process[i].pid,process[i].wt,process[i].bt,process[i].tat);
}
printf("Average Waiting time:%f\n",(totWt/n));
printf("Average Turnaround time:%f\n",(totTat/n));
printf("Gannat chart:\n");
for(j = 0; j< (process[n-1].tat*7);j++){
printf("-");
}
printf("\n");
for(i = 0;i<n;i++){
for(j=0;j<=(process[i].bt*7)-1;j++){
if(j==((7*process[i].bt)/2)-1){
printf("P%d",process[i].pid);
j += 2;
}
else
printf(" ");
}
printf("|");
}
printf("\n");
for(j = 0; j< (process[n-1].tat*7);j++){
printf("-");
}
printf("\n");
for(i = 0;i<n;i++)
for(j=0;j<=(process[i].bt*7)-1;j++){
if(j==((7*process[i].bt))-1){
printf("%d",process[i].bt);
}
else
printf(" ");
}
printf("\n");
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment