0% found this document useful (0 votes)
156 views7 pages

Shivani 6

The document describes Java programs to implement paging simulation using the Least Recently Used (LRU) and Optimal replacement algorithms. The LRU program accepts the number of frames and pages as input, initializes the frames to -1, stores the page numbers in an array, and simulates replacing pages based on least recently used while counting page faults. The Optimal program also accepts frame and page numbers, initializes frames to -1, stores pages in an array, and simulates replacing pages using an algorithm that knows future references to find the page to replace that will not be used for the longest time in the future, counting page faults. Both output the frame contents and total page faults.

Uploaded by

Shubham
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)
156 views7 pages

Shivani 6

The document describes Java programs to implement paging simulation using the Least Recently Used (LRU) and Optimal replacement algorithms. The LRU program accepts the number of frames and pages as input, initializes the frames to -1, stores the page numbers in an array, and simulates replacing pages based on least recently used while counting page faults. The Optimal program also accepts frame and page numbers, initializes frames to -1, stores pages in an array, and simulates replacing pages using an algorithm that knows future references to find the page to replace that will not be used for the longest time in the future, counting page faults. Both output the frame contents and total page faults.

Uploaded by

Shubham
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/ 7

CLASS: TE

DIV: B
ROLL NO: 14
FULL NAME: Shivani Patil
SUBJECT NAME:SPOS
ASSIGNMENT NO: 4
Problem Statement :
Write a Java Program (using OOP features) to implement paging simulation using
1. Least Recently Used (LRU)
2. Optimal algorithm
****LRU****

import java.io.*;
class lru
{
public static void main(String args[])throws IOException
{
BufferedReader obj=new BufferedReader(new InputStreamReader(System.in));
int f,page=0,ch,pgf=0,n,chn=0;
boolean flag;
int pages[]; //pgf-page fault

System.out.println("1.LRU");
int pt=0;
System.out.println("enter no. of frames: ");
f=Integer.parseInt(obj.readLine());
int frame[]=new int[f];

for(int i=0;i<f;i++)
{
frame[i]=-1;
}

System.out.println("enter the no of pages ");


n=Integer.parseInt(obj.readLine());

pages=new int[n];
System.out.println("enter the page no ");

for(int j=0;j<n;j++)
pages[j]=Integer.parseInt(obj.readLine());

int pg=0;
for(pg=0;pg<n;pg++)
{
page=pages[pg];
flag=true;
for(int j=0;j<f;j++)
{
if(page==frame[j])
{
flag=false;
break;
}
}
int temp,h=3,i;
if(flag)
{
if( frame[1]!=-1 && frame[2]!=-1 && frame[0]!=-1)
{
temp=pages[pg-3];
if(temp==pages[pg-2] || temp==pages[pg-1])
temp=pages[pg-4];

for(i=0;i<f;i++)
if(temp==frame[i])
break;
frame[i]=pages[pg];
}
else
{
if(frame[0]==-1)
frame[0]=pages[pg];
else if(frame[1]==-1)
frame[1]=pages[pg];
else if(frame[2]==-1)
frame[2]=pages[pg];
}

System.out.print("frame :");
for(int j=0;j<f;j++)
System.out.print(frame[j]+" ");
System.out.println();
pgf++;
}
else
{
System.out.print("frame :");
for(int j=0;j<f;j++)
System.out.print(frame[j]+" ");
System.out.println();
}

}//for

System.out.println("Page fault:"+pgf);

}//main
}//class

/*
OUTPUT:-

ashar@ashar-1011PX:~/Desktop/SPOS/LRU$ javac lru.java


ashar@ashar-1011PX:~/Desktop/SPOS/LRU$ java lru
1.LRU
enter no. of frames:
4
enter the no of pages
10
enter the page no
1
0
1
2
3
7
8
1
5
2
frame :1 -1 -1 -1
frame :1 0 -1 -1
frame :1 0 -1 -1
frame :1 0 2 -1
frame :1 3 2 -1
frame :7 3 2 -1
frame :7 3 8 -1
frame :7 1 8 -1
frame :5 1 8 -1
frame :5 1 2 -1
Page fault:9
aashar@ashar-1011PX:~/Desktop/SPOS/LRU$

Problem Statement :
Write a Java Program (using OOP features) to implement paging simulation using
1. Least Recently Used (LRU)
2. Optimal algorithm

****Optimal****
import java.util.*;
import java.io.*;

class Optimal
{
public static void main(String args[])throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int numberOfFrames, numberOfPages, flag1, flag2, flag3, i, j, k, pos = 0, max;
int faults = 0;
int temp[] = new int[10];

System.out.println("Enter number of Frames: ");


numberOfFrames = Integer.parseInt(br.readLine());
int frame[] = new int[numberOfFrames];

System.out.println("Enter number of Pages: ");


numberOfPages = Integer.parseInt(br.readLine());

int pages[] = new int[numberOfPages];


System.out.println("Enter the pages: ");
for(i=0; i<numberOfPages; i++)
pages[i] = Integer.parseInt(br.readLine());

for(i = 0; i < numberOfFrames; i++)


frame[i] = -1;

for(i = 0; i < numberOfPages; ++i){


flag1 = flag2 = 0;

for(j = 0; j < numberOfFrames; ++j){


if(frame[j] == pages[i]){
flag1 = flag2 = 1;
break;
}
}

if(flag1 == 0){
for(j = 0; j < numberOfFrames; ++j){
if(frame[j] == -1){
faults++;
frame[j] = pages[i];
flag2 = 1;
break;
}
}
}

if(flag2 == 0){
flag3 =0;

for(j = 0; j < numberOfFrames; ++j){


temp[j] = -1;

for(k = i + 1; k < numberOfPages; ++k){


if(frame[j] == pages[k]){
temp[j] = k;
break;
}
}
}

for(j = 0; j < numberOfFrames; ++j){


if(temp[j] == -1){
pos = j;
flag3 = 1;
break;
}
}

if(flag3 ==0){
max = temp[0];
pos = 0;

for(j = 1; j < numberOfFrames; ++j){


if(temp[j] > max){
max = temp[j];
pos = j;
}
}
}

frame[pos] = pages[i];
faults++;
}

// System.out.print();

for(j = 0; j < numberOfFrames; ++j){


System.out.print("\t"+ frame[j]);
}
}

System.out.println("\n\nTotal Page Faults: "+ faults);

//7 0 1 2 0 3 0 4 2 3 0 3 2

You might also like