Write a c program to implement Priority Scheduling algorithms non-preemptive

Algorithm:

1.       Start
2.      Declare the array size p[20],bt[20],pri[20], wt[20],tat[20],i, k, n, temp; float wtavg, tatavg,awt,tat;
3.      Read the number of processes to be inserted
4.      Read the Burst times of processes
5.      Sort the Burst times in ascending order and process with shortest burst time is first executed.
for(i=0;i<n;i++)
for(k=i+1;k<n;k++)
                  if(pri[i] > pri[k])
                  {
                              temp=p[i];
                               p[i]=p[k];
                               p[k]=temp;

                              temp=bt[i];
                              bt[i]=bt[k];
                              bt[k]=temp;

                              temp=pri[i];
                              pri[i]=pri[k];
                              pri[k]=temp;
                  }
6.      Waiting time for first process will be zero
wtavg = wt[0] = 0;
tatavg = tat[0] = bt[0];
7.      Calculate waiting time and turnaround time
for(i=1;i<n;i++)
      {
      wt[i] = wt[i-1] + bt[i-1];
      tat[i] = tat[i-1] + bt[i];
      wtavg = wtavg + wt[i];
      tatavg = tatavg + tat[i];
}
8.      Calculate the average waiting time and average turnaround time.
awt=wtavg/n
tat=tatavg/n
9.      Display the values

10.  Stop
source code:

#include<stdio.h>
main()
 {
int p[20],bt[20],pri[20], wt[20],tat[20],i, k, n, temp; float wtavg, tatavg;
clrscr();
printf("Enter the number of processes --- ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
p[i] = i;
printf("Priority of Process");
scanf("%d",&pri[i]);
}
for(i=0;i<n;i++)
{   p[i]=i;
printf("Enter the Burst Time");
scanf("%d",&bt[i]);
}
for(i=0;i<n;i++)
for(k=i+1;k<n;k++)
if(pri[i] > pri[k])
{
temp=p[i];
p[i]=p[k];
p[k]=temp;

temp=bt[i];
bt[i]=bt[k];
bt[k]=temp;

temp=pri[i];
pri[i]=pri[k];
pri[k]=temp;
}
wtavg = wt[0] = 0;
tatavg = tat[0] = bt[0];
for(i=1;i<n;i++)
{
wt[i] = wt[i-1] + bt[i-1];
tat[i] = tat[i-1] + bt[i];
wtavg = wtavg + wt[i];
tatavg = tatavg + tat[i]; }
printf("\nPROCESS\t\tPRIORITY\tBURST TIME\tWAITING TIME\tTURNAROUND TIME");
 for(i=0;i<n;i++)
printf("\n%d \t\t %d \t\t %d \t\t %d \t\t %d ",p[i],pri[i],bt[i],wt[i],tat[i]);
printf("\nAverage Waiting Time is --- %f",wtavg/n);
printf("\nAverage Turnaround Time is --- %f",tatavg/n);
getch(); }

Comments

Popular posts from this blog

Write C programs to simulate the Paging techniques of memory management

Write C programs to simulate the Two level directory File organization technique

Write C programs to simulate the Hierarchical directory File organization technique