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

PROGRAM FOR BANKERS ALGORITHM FOR DEADLOCK AVOIDENCE

JAVA RECORD PROGRAM FOR AREA AND PERIMETER OF RECTANGLE

JAVA PROGRAM TO PERFORM MULTI THREADING USING RUNNABLE INTERFACE