Cpu Scheduling Algorithms: Program Code
Cpu Scheduling Algorithms: Program Code
PROGRAM CODE
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#define MAX 40
void main()
{
int ch,n;
process proc[MAX];
while(1)
{
clrscr();
cout<<"\n\t\tMAIN MENU\n"
<<"\n\t1.Enter the Process Attributes.\n"
<<"\n\t2.First Come First Serve(FCFS) Scheduling Algorithm.\n"
<<"\n\t3.Shortest Job First(SJF) Scheduling Algorithm.\n"
<<"\n\t4.Priority Scheduling Algorithm.\n"
<<"\n\t5.Exit.\n"
<<"\n\tEnter the option : ";
cin>>ch;
switch(ch)
{
case 1:clrscr();
n=accept(proc);
clrscr();
display(proc,n);
break;
case 2:clrscr();
cout<<"\n\t\t\tFIRST COME FIRST SERVE\n";
fcfs(proc,n);
break;
case 3:clrscr();
1
CPU SCHEDULING ALGORITHMS
case 4:clrscr();
cout<<"\n\t\t\tPRIORITY\n";
priority(proc,n);
break;
2
CPU SCHEDULING ALGORITHMS
3
CPU SCHEDULING ALGORITHMS
pro[j+1]=temp;
}
}
for(i=0;i<n;i++)
{
flag=0;
if(i==0)
sum=pro[0].burst_time;
else
sum=sum+pr[i].burst_time;
for(j=0;j<n;j++)
{
if(pro[j].arr_time<=sum && pro[j].execute==0)
{
pr[k++]=pro[j];
pro[j].execute=1;
flag=1;
}
}
if(flag==0 && k<n)
{
pr[k++]=pro[i+1];
}
for(int l=i+1;l<k;l++)
for(int m=i+1;m<k-1;m++)
{
if(pr[m].priority>pr[m+1].priority)
{
temp=pr[m];
pr[m]=pr[m+1];
pr[m+1]=temp;
}
}
}
display(pr,n);
display_seq(pr,n);
}
4
CPU SCHEDULING ALGORITHMS
sum=sum-pro[i].arr_time+1;
total=total+sum;
}
wait_time=total/n;
cout<<"\n\n\tAverage Waiting time = "<<wait_time<<" ms ";
}
5
CPU SCHEDULING ALGORITHMS
b=pro[t].burst_time=pro[t].burst_time-1;
}
}
for(i=0;i<n;i++)
for(j=0;j<n-1;j++)
{
if(pro[j].burst_time>pro[j+1].burst_time)
{
temp=pro[j];
pro[j]=pro[j+1];
pro[j+1]=temp;
}
}
cout<<"\n\n\tSequence of Execution Of Process : \n\n\t";
for(i=0;i<n;i++)
{
cout<<"P"<<x[i]<<" ";
a[m++]=x[i];
}
for(i=0;i<n;i++)
{
for(j=0;j<pro[i].burst_time;j++)
{
cout<<"P"<<pro[i].process_no<<" ";
a[m++]=pro[i].process_no;
}
}
total=0;
int cnt=0;
for(i=1;i<m;i++)
{
if(a[i]!=a[i-1])
for(j=0;j<n;j++)
if(a[i]==pro[j].process_no)
{ cnt=0;
for(k=0;k<i;k++)
{
if(a[k]==a[i])
cnt++;
}
total=total+i-pro[j].arr_time+1-cnt;
}
}
wait_time=total/n;
cout<<"\n\n\tAverage Waiting time = "<<wait_time<<" ms ";
}
6
CPU SCHEDULING ALGORITHMS
OUTPUT
MAIN MENU
5.Exit.
Process 1 :
Process 2 :
7
CPU SCHEDULING ALGORITHMS
Process 3 :
Process 4 :
Process 5 :
P1 1 4 5
P2 5 2 2
P3 2 2 4
P4 4 3 1
P5 3 4 3
8
CPU SCHEDULING ALGORITHMS
MAIN MENU
5.Exit.
P1 1 4 5
P3 2 2 4
P5 3 4 3
P4 4 3 1
P2 5 2 2
P1 P1 P1 P1 P3 P3 P5 P5 P5 P5 P4 P4 P4 P2 P2
9
CPU SCHEDULING ALGORITHMS
MAIN MENU
5.Exit.
P1 1 4 5
P3 2 2 4
P5 3 4 3
P4 4 3 1
P2 5 2 2
P1 P3 P3 P1 P1 P1 P2 P2 P4 P4 P4 P5 P5 P5 P5
10
CPU SCHEDULING ALGORITHMS
MAIN MENU
5.Exit.
PRIORITY
P1 1 4 5
P4 4 3 1
P2 5 2 2
P5 3 4 3
P3 2 2 4
P1 P1 P1 P1 P4 P4 P4 P2 P2 P5 P5 P5 P5 P3 P3
11
CPU SCHEDULING ALGORITHMS
MAIN MENU
5.Exit.
12