0% found this document useful (0 votes)
9 views

Exp 5

The document contains code for implementing the FCFS and SJF scheduling algorithms. It includes code to take process details as input, sort by arrival time or burst time, calculate completion times, turnaround times and waiting times, and output the results.

Uploaded by

riyamarjum25
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Exp 5

The document contains code for implementing the FCFS and SJF scheduling algorithms. It includes code to take process details as input, sort by arrival time or burst time, calculate completion times, turnaround times and waiting times, and output the results.

Uploaded by

riyamarjum25
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

EXP 5-A FCFS SCHEDULING

#include<stdio.h>
void main()
{
int i=0,j=0,b[i],g[20],p[20],w[20],t[20],a[20],n=0,m;
float avgw=0,avgt=0;
printf("Enter the number of process : ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Process ID : ");
scanf("%d",&p[i]);

printf("Burst Time : ");


scanf("%d",&b[i]);

printf("Arrival Time: ");


scanf("%d",&a[i]);
}

int temp=0;
for(i=0;i<n-1;i++)
{
for(j=0;j<n;j++)
{
if(a[j]>a[j+1])
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;

temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;

temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}

g[0]=a[0]+b[0]; // completion time of scheduled process 1


for(i=1;i<n;i++) // to calculate the completion time of all other processes
g[i]=(g[i-1]<a[i])?g[i-1]+b[i]+(a[i]-g[i-1]):g[i-1]+b[i];
for(i=0;i<n;i++)
{

t[i]=g[i]-a[i];
w[i]=t[i]-b[i];
avgw+=w[i];
avgt+=t[i];
}
avgw=avgw/n;
avgt=avgt/n;
printf("P_ID\tA_T\tB_T\tC_T\tT_T\tW_T\n");
for(i=0;i<n;i++)
{
printf("%d\t%d\t%d\t%d\t%d\t%d\n",p[i],a[i],b[i],g[i],t[i],w[i]);
}
printf("\nAverage waiting time %f",avgw);
printf("\nAverage turnarround time %f",avgt);
}

EXP5-B SJF

// Consider all processes joined at same arrival time


#include<stdio.h>
void main()
{
int i=0,j=0,b[i],g[20],p[20],w[20],t[20],n=0,m;
float avgw=0,avgt=0;
printf("Enter the number of process : ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("Process ID : ");
scanf("%d",&p[i]);

printf("Burst Time : ");


scanf("%d",&b[i]);

}
int temp=0;
for(i=0;i<n-1;i++)
{
for(j=0;j<n;j++)
{
if(b[j]>b[j+1])
{temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;

temp=p[j];
p[j]=p[j+1];
p[j+1]=temp;
}
}
}

g[0]=b[0]; // completion time of scheduled process 1

for(i=1;i<n;i++) // to calculate the completion time of all other processes


g[i]=g[i-1]+b[i];
for(i=0;i<n;i++)
{

t[i]=g[i];
w[i]=t[i]-b[i];
avgw+=w[i];
avgt+=t[i];
}
avgw=avgw/n;
avgt=avgt/n;
printf("P_ID\tB_T\tC_T\tT_T\tW_T\n");
for(i=0;i<n;i++)
{
printf("%d\t%d\t%d\t%d\t%d\n",p[i],b[i],g[i],t[i],w[i]);
}
printf("\nAverage waiting time %f",avgw);
printf("\nAverage turnarround time %f",avgt);
}

You might also like