TE Comp Sem-II SPOS Prac 9 (Scheduling FCFS)

#include<iostream.h>
#include<conio.h>
#include<iomanip.h>

typedef struct process
{

    int pid,at,et,ct,wt,tat;
}process;


void main()
{
    process p[10],temp;
    int n,i,j,twt=0,ttat=0;
    float awt,atat,tp;
    clrscr();
    cout<<"\nEnter the no of processes = ";
    cin>>n;
   
    for(i=0;i<n;i++)
    {
        cout<<"\nenter process id = ";
        cin>>p[i].pid;
        cout<<"enter arrival time  = ";
        cin>>p[i].at;
        cout<<"enter execution time = ";
        cin>>p[i].et;
    }
   
    cout<<"\n \tFCFS SCHEDULING \n";
    //sort by arrival time
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-1;j++)
            {
                if(p[j].at>p[j+1].at)
                {
                    temp=p[j+1];
                    p[j+1]=p[j];
                    p[j]=temp;
                }
            }
    }
   
    for(i=0;i<n;i++)
    {
        if(i==0)
        {
            p[i].wt=0;
            p[i].ct=p[i].at+p[i].et;
            p[i].tat=p[i].ct-p[i].at;
        }
        else
        {
            int wt=p[i-1].ct-p[i].at;
            if(wt>0)
                p[i].wt=wt;
            else
                p[i].wt=0;
               
           
            if(p[i-1].ct>p[i].at)
            {
                p[i].ct=p[i-1].ct+p[i].et;
            }
            else
                p[i].ct=p[i].at+p[i].et;
       
            p[i].tat=p[i].ct-p[i].at;
        }
   

    }

    cout<<"\nPID ARR.TIME EXE.TIME COMP.TIME WAIT.TIME TURNAROUND.TIME ";
    for(i=0;i<n;i++)
    {
        cout<<"\n";
        cout<<setw(3)<<p[i].pid;
        cout<<setw(8)<<p[i].at;
        cout<<setw(8)<<p[i].et;
        cout<<setw(9)<<p[i].ct;
        cout<<setw(9)<<p[i].wt;
        cout<<setw(9)<<p[i].tat;
        twt=twt+p[i].wt;
        ttat=ttat+p[i].tat;
    }
    awt=(float)twt/n;
    atat=(float)ttat/n;
    tp=(float)(p[n-1].ct-p[0].at)/n;
    cout<<"\n\nAVG WAIT.TIME = "<<awt;
    cout<<"\nAVG TURN AROUND TIME = "<<atat;
//    cout<<"\nTHROUGHPUT ="<<tp;
    getch();
   
}

No comments:

Post a Comment