Untitled

 avatar
unknown
plain_text
a year ago
1.9 kB
4
Indexable
#include<stdio.h>
int main(){
    int n,pid[10],at[10],bt[10],total=0,i,j,t,temp,procs[100],wt[10],ct[10],k;
    float avg_tat = 0.0 , avg_wt = 0.0;
    printf("Enter the number of processes");
    scanf("%d",&n);
    for(i =0 ; i<n ; i++){
        printf("ENTER THE PROCESS ID\t");
        scanf("%d",&pid[i]);
        printf("ENTER THE ARRIVAL TIME OF PROCESS\t");
        scanf("%d",&at[i]);
        printf("ENTER THE BURST TIME OF PROCESS\t");
        scanf("%d",&bt[i]);
        //initialize waiting time =  0 for all process
        wt[i]= 0;
        total = total + bt[i];
        
    } 
    //sort according to at
    for(i=0;i<n;i++){
        for(j=i+1;j<n;j++){
            if(at[i]>at[j]){
                temp = at[i];
                at[i]=at[j];
                at[j]= temp;
                
                temp =bt[i];
                bt[i]= bt[j];
                bt[j]=temp;
                
                temp = pid[i];
                pid[i] = pid[j];
                pid[j]= temp;
            }
        }
    }
    for(i =0; i <total ; i++){
        t =total;
        for( j=0 ; j>n ; j++){
            if((bt[j]!=0)&&(at[j]<=i)&&(bt[j]<t))
            {
                t=bt[j];
                k=j;
            }
        }
        bt[k]--;
        procs[i]=k;
    }
    k=0;
    for(i=0;i<total;i++){
        for(j = 0 ; j < n ; j++){
            if(procs[i]==j){
                ct[j]=i;
                wt[j]++;
            }
        }
    }
    printf("\tPID\tAT\tBT\tCT\tTAT\tWT\n");
    printf("-----------------------------\n");
    for(i=0;i<n;i++){
        printf("\t%d\t%d\t%d\t%d\t%d\t%d\n",pid[i],at[i],bt[i],ct[i]+1,(ct[i]-at[i])+1,(((ct[i]+1-wt[i])-at[i])));
        avg_wt = avg_wt+(((ct[i]+1)-wt[i])-at[i]);
        avg_tat = avg_tat + ((ct[i]-at[i])+1);
        
    }
    printf("\nAVERAGE TAT ==>\t%f\tAVERAGE WT ==>\t%f\n",(avg_tat/n),(avg_wt/n));
    return 0;
}
Editor is loading...
Leave a Comment