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

Assignment 4

The document contains three Java programs implementing different page replacement algorithms: FIFO, LRU, and Optimal. Each program takes user input for the number of frames and pages, processes the page requests, and outputs the number of hits, faults, and hit ratios. The example outputs demonstrate the results of running each algorithm with specific input values.
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)
7 views7 pages

Assignment 4

The document contains three Java programs implementing different page replacement algorithms: FIFO, LRU, and Optimal. Each program takes user input for the number of frames and pages, processes the page requests, and outputs the number of hits, faults, and hit ratios. The example outputs demonstrate the results of running each algorithm with specific input values.
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

NAME :- Maithili Kishor Narkhede

Div :- A
Roll No :- COTA28

Assignment No. 4

1) FIFO :-

Program :-

import java.io.*;
class FIFO
{

public static void main(String args[]) throws IOException


{
int n;
int f;

float rat;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the number of FRAMES : ");
f=Integer.parseInt(br.readLine());
int fifo[]=new int[f];
System.out.println("Enter the number of INPUTS : ");
n=Integer.parseInt(br.readLine());
int inp[]=new int[n];
System.out.println("Enter INPUT: ");
for(int i=0;i<n;i++)
inp[i]=Integer.parseInt(br.readLine());
System.out.println("----------------------");
for(int i=0;i<f;i++)
fifo[i]=-1;
int Hit=0;
int Fault=0;
int j=0;
boolean check;
for(int i=0;i<n;i++)
{
check=false;

for(int k=0;k<f;k++)
if(fifo[k]==inp[i])
{
check=true;
Hit=Hit+1;
}
if(check==false)
{
fifo[j]=inp[i];
j++;
if(j>=f)
j=0;
Fault=Fault+1;
}

}
rat = (float)Hit/(float)n;
System.out.println("HIT:"+Hit+" FAULT:"+Fault+" HIT RATIO:"+rat);
}
}

OUTPUT :-

Enter the number of FRAMES :


3
Enter the number of INPUTS :
7
Enter INPUT:
1
3
0
3
5
6
3
----------------------
HIT:1 FAULT:6 HIT RATIO:0.14285715
2) LRU :-

Program :-

import java.util.ArrayList;
import java.util.Scanner;

public class LRU


{
public static void main(String agrs[])
{
Scanner sn=new Scanner(System.in);

System.out.print("\nEnter How Many Frames You Want : ");


int frame=sn.nextInt();

System.out.print("How Many Pages You Want : ");


int pg=sn.nextInt();

System.out.print("\nEnter Pages : ");


int pages[]=new int[pg];
for(int i=0;i<pg;i++)
{
pages[i]=sn.nextInt();

ArrayList<Integer> s=new ArrayList<>(frame);


int count=0,pagefault=0;
for(int i:pages)
{
if(!s.contains(i))
{
if(s.size()==frame)
{
s.remove(0);
s.add(frame-1,i);
}
else
{
s.add(count,i);
count++;
}

pagefault++;

}else
{
s.remove((Object)i);
s.add(s.size(),i);
}
}
System.out.print("Page Fault : "+pagefault);
}}

OUTPUT :-

Enter How Many Frames You Want : 4


How Many Pages You Want : 14

Enter Pages :
7
0
1
2
0
3
0
4
2
3
0
3
2
3
Page Fault : 6

3) Optimal :-
Program :-

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

public class optimalpg {


public static void main(String args[]) throws IOException {

Scanner sn=new Scanner(System.in);

int numberOfFrames, numberOfPages, flag1, flag2, flag3, i, j, k, pos = 0, max,hit=0;


int faults = 0;
int temp[] = new int[10];

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


numberOfFrames = sn.nextInt();
int frame[] = new int[numberOfFrames];

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


numberOfPages = sn.nextInt();

int pages[] = new int[numberOfPages];


System.out.println("Enter the pages : ");

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


pages[i] = sn.nextInt();

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;
hit++;
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);


System.out.println("\n\nTotal Page Faults : " + hit);
}
}
OUTPUT :-
Enter number of Frames :
4
Enter number of Pages :
14
Enter the pages :
7
0
1
2
0
3
0
4
2
3
0
3
2
3

Total Page Faults : 6

Total Page Faults : 8

You might also like