0% found this document useful (0 votes)
250 views8 pages

Codes For Scheduling

This document contains C++ code for implementing various CPU scheduling algorithms: 1) Preemptive and non-preemptive Shortest Job First (SJF) algorithms 2) Priority scheduling algorithm (both preemptive and non-preemptive) 3) Round Robin scheduling algorithm The code takes input like process arrival times and burst times, then calculates waiting times and average waiting times for each algorithm.

Uploaded by

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

Codes For Scheduling

This document contains C++ code for implementing various CPU scheduling algorithms: 1) Preemptive and non-preemptive Shortest Job First (SJF) algorithms 2) Priority scheduling algorithm (both preemptive and non-preemptive) 3) Round Robin scheduling algorithm The code takes input like process arrival times and burst times, then calculates waiting times and average waiting times for each algorithm.

Uploaded by

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

c++ program of preemitive Shortest job first (SJF) scheduling

algorithm.
#include<iostream.h>
#include<stdio.h>
int main()
{ int n=3;
float total,wait[3]={0};
float p[3],twaiting=0,waiting=0;
int proc;
int stack[3];
float brust[3],arrival[3],sbrust,temp[3],top=3;
for(int i=0;i<n;i++)
{
p[i]=i;
stack[i]=i;
cout<<"enter arival time :";
cin>>arrival[i];
cout<<endl<<"enter brust time:";
cin>>brust[i];
temp[i]=arrival[i];
sbrust=brust[i]+sbrust;
}

for(i=0;i<sbrust;i++)
{
proc=stack[0];
if(temp[proc]==i)
twaiting=0;
else
twaiting=i-(temp[proc]);
temp[proc]=i+1;

wait[proc]=wait[proc]+twaiting;
waiting=waiting+(twaiting);
brust[proc]=brust[proc]-1;

if(brust[proc]==0)
{
for(int x=0;x<top-1;x++)
stack[x]=stack[x+1];
top=top-1;
}
for(int z=0;z<top-1;z++)
{
if((brust[stack[0]]>brust[stack[z+1]]) && (arrival[stack[z+1]] <= i+1))
{
int t=stack[0];
stack[0]=stack[z+1];
stack[z+1]=t;
}
}
}

cout<<"waiting:"<<waiting;
return 0;
}

c++ program of non preemptive Shortest Job First


(SJF)scheduling algorithm
#include<iostream.h>
#include<stdio.h>
#include<fstream.h>

int main()
{ int n=3;
float total,wait[3]={0};
float p[3],twaiting=0,waiting=0;
int proc;
int stack[3];
float brust[3],arrival[3],sbrust,temp[3],top=3;

for(int i=0;i<n;i++)
{
p[i]=i;
stack[i]=i;
cout<<"enter arival time :";
cin>>arrival[i];
cout<<endl<<"enter brust time:";
cin>>brust[i];
temp[i]=arrival[i];
sbrust=brust[i]+sbrust;

for(i=0;i<sbrust;i++)
{
proc=stack[0];
if(temp[proc]==i)
{
//temp[proc]=i+1;;
twaiting=0;
}
else
{
twaiting=i-(temp[proc]);

}
temp[proc]=i+1;

wait[proc]=wait[proc]+twaiting;
waiting=waiting+(twaiting);
brust[proc]=brust[proc]-1;

if(brust[proc]==0)
{
for(int x=0;x<top-1;x++)
{
stack[x]=stack[x+1];
}
top=top-1;
for(int z=0;z<top-1;z++)
{
if((brust[stack[0]]>brust[stack[z+1]]) && (arrival[stack[z+1]] <= i+1))
{
int t=stack[0];
stack[0]=stack[z+1];
stack[z+1]=t;
}
}
}

cout<<"waiting:"<<waiting;
return 0;
}

Shortest Job First (SJF) Disk Scheduling Algorithm in C++


#include <iostream>

using namespace std;

int main()
{
clrscr();
int n,a[4],b[4],i,j;
float k;
cout<<"Enter no. of process :";
cin>>n;

for(i=0;i<n;i++)
{
cout<<"Enter burst time of process "<<i+1<<" : ";
cin>>a[i];
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i]<a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
}
}

k=0; b[0]=a[0];

for(i=1;i<n;i++)
{
b[i]=b[i-1]+a[i];
}

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

cout<<"\nAverage Waiting Time = "<<k/n;


}

c++ program of non preemptive priority based scheduling


algorithm
#include <iostream>
using namespace std;
int main()
{ int n;

cout<<"enter your toal no. of process";


cin>>n;
float total,wait[n];
float p[n],twaiting=0,waiting=0;
int proc;
int stack[n];
float brust[n],arrival[n],sbrust,temp[n],top=n,prority[n];
int i;
for(i=0;i<n;i++)
{
p[i]=i;
stack[i]=i;
cout<<"enter arival time :";
cin>>arrival[i];
cout<<endl<<"enter brust time:";
cin>>brust[i];
cout<<endl<<"enter prority time:";
cin>>prority[i];

temp[i]=arrival[i];
sbrust=brust[i]+sbrust;

for(i=0;i<sbrust;i++)
{
//section 1
proc=stack[0];
if(temp[proc]==i)
{

twaiting=0;
}
else
{
twaiting=i-(temp[proc]);
}
temp[proc]=i+1;
wait[proc]=wait[proc]+twaiting;
waiting=waiting+(twaiting);
brust[proc]=brust[proc]-1;

if(brust[proc]==0)
{
for(int x=0;x<top-1;x++)
{
stack[x]=stack[x+1];

}
top=top-1;

for(int z=0;z<top-1;z++)
{
if((prority[stack[0]]>prority[stack[z+1]]) && (arrival[stack[z+1]] <= i+1))
{
int t=stack[0];
stack[0]=stack[z+1];
stack[z+1]=t;
}

cout<<"Average waiting time is:"<<waiting/n;


float tu=(sbrust+waiting)/n;
cout<<endl<<"Average turnaround time is:"<<tu;
return 0;
}

c++ program of preemitive prority based scheduling algorithm.


#include <iostream>
using namespace std;
int main()
{ int n;
cout<<"enter your toal no. of process";
cin>>n;
float total,wait[n];
float p[n],twaiting=0,waiting=0;
int proc;
int stack[n];
float brust[n],arrival[n],sbrust,temp[n],top=n,prority[n];
int i;

for(i=0;i<n;i++)
{
p[i]=i;
stack[i]=i;
cout<<"enter arival time :";
cin>>arrival[i];
cout<<endl<<"enter brust time:";
cin>>brust[i];
cout<<endl<<"enter prority time:";
cin>>prority[i];
temp[i]=arrival[i];
sbrust=brust[i]+sbrust;
}

for(i=0;i<sbrust;i++)
{
//section 1
proc=stack[0];
if(temp[proc]==i)
twaiting=0;
else
twaiting=i-(temp[proc]);
temp[proc]=i+1;
wait[proc]=wait[proc]+twaiting;
waiting=waiting+(twaiting);
brust[proc]=brust[proc]-1;

if(brust[proc]==0)
{
for(int x=0;x<top-1;x++)
stack[x]=stack[x+1];
top=top-1;
}
for(int z=0;z<top-1;z++)
{
if((prority[stack[0]]>prority[stack[z+1]]) && (arrival[stack[z+1]] <= i+1))
{
int t=stack[0];
stack[0]=stack[z+1];
stack[z+1]=t;
}
}
}
cout<<"Average waiting time is:"<<waiting/n;
float tu=(sbrust+waiting)/n;
cout<<endl<<"Average turnaround time is:"<<tu;
return 0;
}

c++ program of Round Robin scheduling algorithm.


#include<iostream.h>
#include<stdio.h>
#include<fstream.h>

int main()
{ int n=3;
float total,wait[3]={0};
float p[3],twaiting=0,waiting=0;
int proc;
int stack[3];
float brust[3],arrival[3],sbrust,temp[3],top=3;
for(int j=0;j<n;j++)
{

p[j]=j;
stack[j]=j;
cout<<"enter arival time :";
cin>>arrival[j];
cout<<endl<<"enter brust time:";
cin>>brust[j];
temp[j]=arrival[j];
sbrust=brust[j]+sbrust;
}
int cont;
cout<<"enter contum time:";
cin>>cont;
int i=0;
while(1)
{ for(int m=0;m<cont;m++)
{
if(i==sbrust)
break;
proc=stack[0];
cout<<endl<<proc;
if(temp[proc]==i)
twaiting=0;
else
twaiting=i-(temp[proc]);
temp[proc]=i+1;
wait[proc]=wait[proc]+twaiting;
waiting=waiting+(twaiting);
brust[proc]=brust[proc]-1;
if(brust[proc]==0)
{
for(int x=0;x<top-1;x++)
stack[x]=stack[x+1];
top=top-1;
m=-1;
}
i=i+1;
}
if(i==sbrust)
break;
int tp=stack[0];
for(int x=0;x<top-1;x++)
stack[x]=stack[x+1];
stack[top-1]=tp;
m=-1;
}
cout<<"waiting:"<<waiting;
return 0;
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy