///PROGRAM TO IMPLEMENT PRIORITY SCHEDULING
#include<stdio.h>
#include<conio.h>
#define MAX 20
struct proces
{
int burst;
char name[MAX];
int prio;
};
int main()
{
struct proces arr[MAX],temp;
int n,i,j,sum,start[MAX],finish[MAX],wait[MAX],turn[MAX];
float avgwait=0.0,avgturn=0.0;
printf("\n\tEnter the number of process\t");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n\tEnter process name for process P%d\t",i+1);
scanf("%s",arr[i].name);
printf("\n\tEnter priority for process P%d\t",i+1);
scanf("%d",&arr[i].prio);
printf("\n\tEnter burst time for process P%d\t",i+1);
scanf("%d",&arr[i].burst);
}
//sort
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(arr[i].prio>arr[j].prio)
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(i=0;i<n;i++)
{
sum=0;
for(j=0;j<i;j++)
{
sum=sum+arr[j].burst;
}
start[i]=sum;
}
for(i=0;i<n;i++)
{
wait[i]=start[i];
finish[i]=wait[i]+arr[i].burst;
turn[i]=wait[i]+arr[i].burst;
avgwait=avgwait+wait[i];
avgturn=avgturn+turn[i];
}
avgwait=avgwait/n;
avgturn=avgturn/n;
printf("\nPname burst_t prio. start_t finish_t wait_t turnaroundtime");
for(i=0;i<n;i++)
{
printf("\n%s\t%d\t%d\t%d\t%d\t%d\t%d",arr[i].name,arr[i].burst,arr[i].prio,start[i],finish[i],wait[i],turn[i]);
}
printf("\n\tAverage waiting time=%.2f",avgwait);
printf("\n\tAverage turnaround time%.2f",avgturn);
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
#define MAX 20
struct proces
{
int burst;
char name[MAX];
int prio;
};
int main()
{
struct proces arr[MAX],temp;
int n,i,j,sum,start[MAX],finish[MAX],wait[MAX],turn[MAX];
float avgwait=0.0,avgturn=0.0;
printf("\n\tEnter the number of process\t");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n\tEnter process name for process P%d\t",i+1);
scanf("%s",arr[i].name);
printf("\n\tEnter priority for process P%d\t",i+1);
scanf("%d",&arr[i].prio);
printf("\n\tEnter burst time for process P%d\t",i+1);
scanf("%d",&arr[i].burst);
}
//sort
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(arr[i].prio>arr[j].prio)
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
for(i=0;i<n;i++)
{
sum=0;
for(j=0;j<i;j++)
{
sum=sum+arr[j].burst;
}
start[i]=sum;
}
for(i=0;i<n;i++)
{
wait[i]=start[i];
finish[i]=wait[i]+arr[i].burst;
turn[i]=wait[i]+arr[i].burst;
avgwait=avgwait+wait[i];
avgturn=avgturn+turn[i];
}
avgwait=avgwait/n;
avgturn=avgturn/n;
printf("\nPname burst_t prio. start_t finish_t wait_t turnaroundtime");
for(i=0;i<n;i++)
{
printf("\n%s\t%d\t%d\t%d\t%d\t%d\t%d",arr[i].name,arr[i].burst,arr[i].prio,start[i],finish[i],wait[i],turn[i]);
}
printf("\n\tAverage waiting time=%.2f",avgwait);
printf("\n\tAverage turnaround time%.2f",avgturn);
getch();
return 0;
}
Comments
Post a Comment