Thursday 29 September 2011


                     IMPLEMENTATION OF PRIORITY SCHEDULING ALGORITHM

AIM:
          To implement the priority scheduling algorithm.

ALGORITHM:

  1. Start the program
  2. Obtain the number of processes from the user
  3. Obtain the CPU burst time and the priorities for each process.
  4. Calculate the waiting time for each process such that the process with lower priority is executed first and the process with highest priority is executed last.
  5. Display all the details for each process along with the average waiting time.
  6. Stop the execution.

PROGRAM:

#include<stdio.h>
int enqueue(int num,int y,int q[]);
int main()
{
int p[5],b[5],w[5],f[5],n,tb,t[5],i,j,tw,tt,temp,wt,pr[10],c[10];
float aw,at;
printf("\n Enter the no. of process:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Enter the burst time & priority:");
scanf("%d",&b[i]);
scanf("%d",&pr[i]);
p[i]=i+1;
}
for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
         if(pr[i]>pr[j])
         {
            temp=pr[i];
            pr[i]=pr[j];
            pr[j]=temp;
            temp=b[i];
            b[i]=b[j];
            b[j]=temp;
            temp=p[i];
            p[i]=p[j];
            p[j]=temp;
         }
tw=w[0]=tt=t[0]=tb=0;
for(i=0;i<n;i++)
{
w[i]=tb;
tb=tb+b[i];
t[i]=b[i]+w[i];
tw=tw+w[i];
tt=tt+t[i];
}
aw=(float)tw/n;
at=(float)tt/n;
for(i=0;i<n;i++)
c[i]=w[i];
c[n]=t[n-1];
printf("\n Process time Burst time Waiting time Turnaround time\n");
for(i=0;i<n;i++)
printf("\n\t%d\t\t%d\t\t%d\t\t%d\n",p[i],b[i],w[i],t[i]);
printf("\nGantt chart\n");
for(i=0;i<=n;i++)
for(j=i+1;j<=n;j++)
if(c[i]>c[j])
{
temp=c[i];
c[i]=c[j];
c[j]=temp;
}
for(i=0;i<n;i++)
printf("\t p%d",p[i]);
printf("\n");
for(i=0;i<=n;i++)
printf("\t%d",c[i]);
printf("\n The total waiting time=%d",tw);
printf("\n Total turnaround time is=%d",tt);
printf("\n Average waiting time=%f",aw);
printf("\n Average turnaround time=%f",at);
printf("\n");
}

OUTPUT:

Enter the no. of   process:        4

Enter the burst time for P1:    4
Enter the priority for P1:      2

Enter the burst time for P2:    5
Enter the priority for P2:      3

Enter the burst time for P3:    6
Enter the priority for P3:      1

Enter the burst time for P4:    7
Enter the priority for P4:      4

 Process time   Burst time      Waiting time    Turnaround time

        3                     6                         0                       6

        1                    4                          6                       10

        2                    5                         10                      15

        4                     7                         15                      22

 Gantt chart
            P3      P1      P2      P4
        0       6       10      15      22
 The total waiting time=31
 Total turnaround time is=53
 Average waiting time=7.750000
 Average turnaround time=13.250000

RESULT:
Thus the program using priority scheduling was done and the output was verified.

0 comments:

Post a Comment