Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- void ganttchart();
- int sum_of_busttime=0;
- int i,b;
- struct process
- {
- char name[10];
- int arrival_time;
- int burst_time;
- int turnaround_time;
- int weiting_time;
- int completed;
- }p[10];
- void main()
- {
- int j;
- float k=0,m=0;
- float avgweiting_time;
- float avgturnaround_time;
- printf("Enter the number of processes:");
- scanf("%d",&b);
- printf("enter the details of the process:\n");
- printf("P_Name\tA_Time\tB_time\n");
- for(i=0;i<b;i++)
- {
- scanf("%s%d%d",&p[i].name,&p[i].arrival_time,&p[i].burst_time);
- p[i].turnaround_time=0;
- p[i].weiting_time=0;
- p[i].completed=0;
- sum_of_busttime+=p[i].burst_time;
- }
- struct process temp;
- for(i=0;i<b-1;i++)
- {
- for(j=i+1;j<b;j++)
- {
- if(p[i].arrival_time>p[j].arrival_time)
- {
- temp=p[i];
- p[i]=p[j];
- p[j]=temp;
- }
- }
- }
- ganttchart();
- printf("P_Name\tA_Time\tB_time\tTa_Time\tWt_Time\n");
- for(i=0;i<b;i++)
- {
- printf("%s\t%d\t%d\t%d\t%d\n",p[i].name,p[i].arrival_time,p[i].burst_time,p[i].turnaround_time,p[i].weiting_time);
- }
- for(i=0;i<b;i++)
- {
- k=k+p[i].weiting_time;
- m=m+p[i].turnaround_time;
- }
- avgturnaround_time=m/b;
- avgweiting_time=k/b;
- printf("Average wating time is : %d\n",avgweiting_time);
- printf("Average Turnarround Time time is : %d\n",avgturnaround_time);
- printf("Sum of burst time :%d",sum_of_busttime);
- }
- void ganttchart()
- {
- int time,pos;
- float hrrn;
- float preority=0;
- for(time=p[0].arrival_time;time<=sum_of_busttime;)
- {
- for(i=0;i<b;i++)
- {
- if(p[i].completed==0)
- {
- if(p[i].arrival_time<=time)
- {
- hrrn=(1+((time-p[i].arrival_time)/p[i].burst_time));
- if(hrrn>preority)
- {
- preority=hrrn;
- pos=i;
- // printf("%d",i+1);
- }
- }
- }
- }
- p[pos].completed=1;
- time+=p[pos].burst_time;
- p[pos].weiting_time = time - p[pos].arrival_time - p[pos].burst_time;
- p[pos].turnaround_time = time - p[pos].arrival_time;
- // printf("%d\n",time);
- }
- printf("\n");
- }
Add Comment
Please, Sign In to add comment