# Implementation of Priority Scheduling Algorithm

Source code Priority scheduling Programming Algorithm
#include<stdio.h>
#include>math.h>
#define MAX20
main()
{
int arrival[MAX];
int burst[MAX];
int prior[MAX];
int n,i,t1=0,t2=0,j,
temp,temp1,temp2,tot=0;
float avg=0.0,wait=0.0;
printf(“Enter the number of jobs: ”);
scanf(“%d”,&n);
for(i=0;i<=n;i++)
{
printf(“Enter the arrival time: ”,i+1);
scanf(“%d”,&arrival[i]);
printf(“Enter the burst time: ”,i+1);
scanf(“%d”,&arrival[i]);
printf(“Enter the priority time: ”,i+1);
scanf(“%d”,&prior[i]);
}
printf(“Priority \t Arrival \t Burst time \t Turnaround time”);
for(i=1;i<n;i++)
{
for(j=1;j<=n;j++)
{
if(prior[i]>prior[j])
{
temp2=prior[i];
prior[i]=prior[j];
prior[j]=temp2;
temp=arrival[j];
arrival[i]=arrival[j];
arrival[j]=temp;
temp1=burst[i];
burst[i]=burst[j];
burst[j]=temp1;
}
}
tot=burst[i]+tot;
printf(“\n %d \t %d \t %d \t %d”,arrival[i],prior[i],burst[i],tot);
}
for(i=1;i<=n;i++)
{
t1=t2;
t2=t1+burst[i];
printf(“\n Process %d \t Waitingtime is: %d \n”,i,t1);
wait=wait+t1;
}
avg=wait/n;
printf(“The average waiting time is %f \n”,avg);
}

OUTPUT CS1252 Operating Systems lap
[redhat35@localhost Rhel5]\$ cc priority.c
[redhat35@localhost Rhel5]\$ ./a.out
Enter the number of jobs: 3
Enter the arrival time: 1
Enter the burst time: 3
Enter the priority time: 2
Enter the arrival time: 3
Enter the burst time: 1
Enter the priority time: 2
Enter the arrival time: 5
Enter the burst time: 3
Enter the priority time: 1

Priority Arrival Burst time Turnaroundtime
5 1 3 3
5 1 3 6
5 1 3 9
process 1 waiting time is:0
process 2 waiting time is:0
process 3 waiting time is:1
The average waiting time is 0.333333