PROGRAM TO UNDERSTAND PRIORITY SCHEDULING ALGORITHM

 /*

 * C program to implement priority scheduling

 */

 

#include <stdio.h>

 

//Function to swap two variables

void swap(int *a,int *b)

{

    int temp=*a;

    *a=*b;

    *b=temp;

}

int main()

{

    int n;

    printf("Enter Number of Processes: ");

    scanf("%d",&n);

 

    // b is array for burst time, p for priority and index for process id

    int b[n],p[n],index[n];

    for(int i=0;i<n;i++)

    {

        printf("Enter Burst Time and Priority Value for Process %d: ",i+1);

        scanf("%d %d",&b[i],&p[i]);

        index[i]=i+1;

    }

    for(int i=0;i<n;i++)

    {

        int a=p[i],m=i;

 

        //Finding out highest priority element and placing it at its desired position

        for(int j=i;j<n;j++)

        {

            if(p[j] > a)

            {

                a=p[j];

                m=j;

            }

        }

 

        //Swapping processes

        swap(&p[i], &p[m]);

        swap(&b[i], &b[m]);

        swap(&index[i],&index[m]);

    }

 

    // T stores the starting time of process

    int t=0;

 

    //Printing scheduled process

    printf("Order of process Execution is\n");

    for(int i=0;i<n;i++)

    {

        printf("P%d is executed from %d to %d\n",index[i],t,t+b[i]);

        t+=b[i];

    }

    printf("\n");

    printf("Process Id     Burst Time   Wait Time    TurnAround Time\n");

    int wait_time=0;

    for(int i=0;i<n;i++)

    {

        printf("P%d          %d          %d          %d\n",index[i],b[i],wait_time,wait_time + b[i]);

        wait_time += b[i];

    }

    return 0;

}


Output:

Enter Number of Processes: 3

Enter Burst Time and Priority Value for Process 1: 10 2

Enter Burst Time and Priority Value for Process 2: 5 0

Enter Burst Time and Priority Value for Process 3: 8 1

Order of process Execution is

P1 is executed from 0 to 10

P3 is executed from 10 to 18

P2 is executed from 18 to 23

 

Process Id     Burst Time   Wait Time    TurnAround Time

    P1            10          0            10

    P3            8          10            18

    P2            5          18            23

Comments

Popular posts from this blog

JAVA RECORD PROGRAM FOR AREA AND PERIMETER OF RECTANGLE

JAVA RECORD PROGRAM FOR FIBBONACCI SERIES

JAVA RECORD PROGRAM FOR MATRIX MULTIPLICATION