Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Moss Simulation Lab Assignment: Need to c reate a command file that maps any 8 pages of physical memory to the first 8 pages of

Moss Simulation Lab Assignment: Need to create a command file that maps any 8 pages of physical memory to the first 8 pages of virtual memory, and then reads from one virtual memory address on each of the 64 virtual pages.

I was able to modify and run the Command file:

// Enter READ/WRITE commands into this file // READ // WRITE READ bin 110 READ bin 111 WRITE hex CB33 WRITE hex FB12 WRITE hex B4A2B READ bin 100000100100000 READ bin 110000010000110 WRITE bin 110011100000000 WRITE random

This is the TRACEFILE

READ 6 ... okay READ 7 ... okay WRITE cb33 ... okay WRITE fb12 ... okay WRITE b4a2b ... page fault READ 4120 ... okay READ 6086 ... okay WRITE 6700 ... okay WRITE 437f3 ... okay

Now I have to Modify replacePage() in PageFault.java to implement a round robin page replacement algorithm (i.e., first page fault replaces page 0, next one replaces page 1, next one replaces page 2, etc.).

Not quite sure how to do this. I have pasted the PageFault.java below.

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions