hey

 avatar
unknown
java
3 years ago
1.9 kB
7
Indexable
 public void fcfsAlgorithm(){

        int n = processList.size();

        int pid[] = new int[n];   // process ids
        int ar[] = new int[n];    // arrival times
        int bt[] = new int[n];    // burst or execution times
        int ct[] = new int[n];    // completion times
        int ta[] = new int[n];    // turn around times
        int wt[] = new int[n];    // waiting times

        int temp;

        for(int i = 0; i < n; i++)
        {
            pid[i] = values[i][0];
            bt[i] = values[i][1];
            ar[i] = values[i][2];
        }

//sorting according to arrival times
        for(int i = 0 ; i <n; i++)
        {
            for(int  j=0;  j < n-(i+1) ; j++)
            {
                if( ar[j] > ar[j+1] )
                {
                    temp = ar[j];
                    ar[j] = ar[j+1];
                    ar[j+1] = temp;
                    temp = bt[j];
                    bt[j] = bt[j+1];
                    bt[j+1] = temp;
                    temp = pid[j];
                    pid[j] = pid[j+1];
                    pid[j+1] = temp;
                }
            }
        }
// finding completion times
        for(int  i = 0 ; i < n; i++)
        {
            if( i == 0)
            {
                ct[i] = ar[i] + bt[i];
            }
            else
            {
                if( ar[i] > ct[i-1])
                {
                    ct[i] = ar[i] + bt[i];
                }
                else
                    ct[i] = ct[i-1] + bt[i];
            }
            ta[i] = ct[i] - ar[i] ;          // turnaround time= completion time- arrival time
            wt[i] = ta[i] - bt[i] ;          // waiting time= turnaround time- burst time
            avgwaittime += wt[i] ;               // total waiting time
            avgturnaroundtime += ta[i] ;               // total turnaround time
        }

    }
Editor is loading...