To Implement Optimal Page Replacement Algorithms.: Experiment 6 Aim
To Implement Optimal Page Replacement Algorithms.: Experiment 6 Aim
TY IT BATCH D
191081902
EXPERIMENT 6
AIM:
To implement Optimal Page Replacement Algorithms.
THEORY:
Optimal Page Replacement Algorithm
Optimal page replacement algorithm says that if page fault occurs then that
page should be removed that will not be used for maximum time in future.
3) Least recently used page will be replaced which may sometimes take a lot
of time.
CODE:
#include <bits/stdc++.h>
using namespace std;
const int N=100005;
Tejal Borase
TY IT BATCH D
191081902
int n;
int frame_size;
int pages[N];
void optimal_page_replacement()
{
vector<int> fr;
int page_faults = 0;
for (int i = 0; i < n; i++)
{
int k;
for (k = 0; k < fr.size(); k++)
if (fr[k] == pages[i])
break;
if (k==fr.size())
{
if (fr.size() < frame_size)
fr.push_back(pages[i]);
else
{
int index=i+1;
int res = -1, farthest = index;
for (int l = 0; l < fr.size(); l++)
{
int j;
for (j = index; j < n; j++)
{
if (fr[l] == pages[j])
{
if (j > farthest)
{
farthest = j;
res = l;
}
break;
Tejal Borase
TY IT BATCH D
191081902
}
}
if (j == n)
{
res=l;
break;
}
}
fr[res] = pages[i];
}
page_faults++;
cout<<pages[i]<<" Fault\n";
//cout<<"Reference to page "<<pages[i]<<" caused a page fault\n";
}
else
{
cout<<pages[i]<<" No page fault\n";
//cout<<"Reference to page "<<pages[i]<<" did not cause a page
fault\n";
}
}
cout<<"\nTotal Page Faults: "<<page_faults;
}
int main()
{
cout<<"Enter number of frames: ";
cin>>frame_size;
CONCLUSION:
In this experiment we have successfully implemented OPTIMAL page replacement
algorithms