Question
Question ModifyreplacePage()inPageFault.javato implement a round robin page replacement algorithm (i.e., first page fault replaces page 0, next one replaces page 1, next one replaces page
Question
ModifyreplacePage()inPageFault.javato implement around robinpage replacement algorithm (i.e., first page fault replaces page 0, next one replaces page 1, next one replaces page 2, etc.).
This is the PageFault.java
/* It is in this file, specifically the replacePage function that will
be called by MemoryManagement when there is a page fault.The
users of this program should rewrite PageFault to implement the
page replacement algorithm.
*/
// This PageFault file is an example of the FIFO Page Replacement
// Algorithm as described in the Memory Management section.
import java.util.*;
import Page;
public class PageFault {
/**
* The page replacement algorithm for the memory management sumulator.
* This method gets called whenever a page needs to be replaced.
*
* The page replacement algorithm included with the simulator is
* FIFO (first-in first-out).A while or for loop should be used
* to search through the current memory contents for a canidate
* replacement page.In the case of FIFO the while loop is used
* to find the proper page while making sure that virtPageNum is
* not exceeded.
*
*Page page = ( Page ) mem.elementAt( oldestPage )
*
* This line brings the contents of the Page at oldestPage (a
* specified integer) from the mem vector into the page object.
* Next recall the contents of the target page, replacePageNum.
* Set the physical memory address of the page to be added equal
* to the page to be removed.
*
*controlPanel.removePhysicalPage( oldestPage )
*
* Once a page is removed from memory it must also be reflected
* graphically.This line does so by removing the physical page
* at the oldestPage value.The page which will be added into
* memory must also be displayed through the addPhysicalPage
* function call.One must also remember to reset the values of
* the page which has just been removed from memory.
*
* @param mem is the vector which contains the contents of the pages
*in memory being simulated.mem should be searched to find the
*proper page to remove, and modified to reflect any changes.
* @param virtPageNum is the number of virtual pages in the
*simulator (set in Kernel.java).
* @param replacePageNum is the requested page which caused the
*page fault.
* @param controlPanel represents the graphical element of the
*simulator, and allows one to modify the current display.
*/
public static void replacePage ( Vector mem , int virtPageNum , int replacePageNum , ControlPanel controlPanel )
{
int count = 0;
int oldestPage = -1;
int oldestTime = 0;
int firstPage = -1;
int map_count = 0;
boolean mapped = false;
while ( ! (mapped) || count != virtPageNum ) {
Page page = ( Page ) mem.elementAt( count );
if ( page.physical != -1 ) {
if (firstPage == -1) {
firstPage = count;
}
if (page.inMemTime > oldestTime) {
oldestTime = page.inMemTime;
oldestPage = count;
mapped = true;
}
}
count++;
if ( count == virtPageNum ) {
mapped = true;
}
}
if (oldestPage == -1) {
oldestPage = firstPage;
}
Page page = ( Page ) mem.elementAt( oldestPage );
Page nextpage = ( Page ) mem.elementAt( replacePageNum );
controlPanel.removePhysicalPage( oldestPage );
nextpage.physical = page.physical;
controlPanel.addPhysicalPage( nextpage.physical , replacePageNum );
page.inMemTime = 0;
page.lastTouchTime = 0;
page.R = 0;
page.M = 0;
page.physical = -1;
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started