Design and implement a Demand Paging virtual memory simulator! It must be a text based application (NOT...

90.2K

Verified Solution

Question

Programming

Design and implement a Demand Paging virtual memorysimulator!
It must be a text based application (NOT a GUI based one).
You can use the C/C++ or Java programming language.
The following algorithms must be implemented: FIFO, OPT, LRU andLFU.
The application must simulate the execution of each of thesealgorithms on a hypothetical computer having only N physical frames(numbered from 0 to N-1, N<8), assuming that the single processthat is running has a virtual memory of ten frames (numbered from 0to 9). The number N should be a number provided in the command lineas an argument.
The algorithms will be simulated based on a reference string (asequence of pages that are to be accessed) that will be either readfrom the keyboard or randomly generated.
THE SIMULATION MUST FOLLOW THE ANIMATED EXAMPLES FROM THE ONLINEMODULE 3 AS CLOSE AS POSSIBLE IN ALL ASPECTS !!!
The program should be menu-based and the menu will keep the user ina loop containing the following options:
0 – Exit
Will exit the program
1 – Read reference string
A reference string will be read from the keyboard and stored in abuffer. Each value of the reference string will be verified andvalidated (or rejected).
Using option 1 again will result in overwriting the old referencestring.
2 – Generate reference string
A reference string will be randomly generated; the length of thereference string will be given by the user interactively. Thestring will be stored in a buffer.
Using option 2 more than once will result in overwriting the oldreference string.
3 – Display current reference string
Will display the stored reference string; if there is no referencestring stored yet, an error message will be displayed.
4 – Simulate FIFO
Will simulate the step by step execution of the FIFO algorithmusing the stored reference string; if there is no reference stringstored yet, an error message must be displayed.
The user will press a key after each step of the simulation tocontinue the simulation.
The total number of faults will be displayed at the end of thesimulation.
5 – Simulate OPT
Will simulate the step by step execution of the OPT algorithm usingthe stored reference string; if there is no reference string storedyet, an error message must be displayed.
The user will press a key after each step of the simulation tocontinue the simulation.
The total number of faults will be displayed at the end of thesimulation.
6 – Simulate LRU
Will simulate the step by step execution of the LRU algorithm usingthe stored reference string; if there is no reference string storedyet, an error message must be displayed.
The user will press a key after each step of the simulation tocontinue the simulation.
The total number of faults will be displayed at the end of thesimulation.
7 – Simulate LFU
Will simulate the step by step execution of the LFU algorithm usingthe stored reference string; if there is no reference string storedyet, an error message must be displayed.
The user will press a key after each step of the simulation tocontinue the simulation.
The total number of faults will be displayed at the end of thesimulation.
Selecting a different option will result in an error message butthe user will NOT exit the loop!
Deliverables:
1. The source code of the project
2. A report document (report.doc/report.pdf/…) containing anintroduction and an overview of the project, then a comprehensivedescription of the design and the implementation of yourproject.
3. A test document (test1.doc/ test1.pdf/ …) containing screensotsthat show the execution of the 4 algorithms using the inputs fromHW6. Three screenshots are required for each algorithm: one thatshows the beginning of the simulation, one in the middle of thesimulation and one showing the end of the simulation.
4. A test document (test2.doc/ test2.pdf/ …) containing screensotsthat show the execution of the 4 algorithms using the followinginputs: N=5, ref. string is: 0 1 2 3 4 5 6 7 8 9 0 9 1 8 2 7 3 6 45 Three screenshots are required for each algorithm: one that showsthe beginning of the simulation, one in the middle of thesimulation and one showing the end of the simulation.
Post the source code of your simulator and the test documents underthe Final Project assignment.

Answer & Explanation Solved by verified expert
4.5 Ratings (828 Votes)
Note Program provided in the JAVA as per the question PhysicalFramejava public class PhysicalFrame int id int inserted int nextnext Use int lastlast Use int timesUsed PhysicalFrame int n int getNextUse return next void setLastUse int n last n int getLastUse return last void incrementTimesUsed MemorySimulatorjava import javautilArrayList import javautilScanner public class MemorySimulator ArrayList rfString reference the generate method uses the reference string and supplied information about the virtual and physical memory to not in memory and no empty space else find the frame to be removed depending on the algo switch alg case FIFO put the new frame in that spot phyMemory current Frame replaceFrame insert Frame make the physical memory for th find least frequently used frame given an array containing frame numbers int findLfu int a int lfuIndex 0 int find least optimal frame int findLeast optimal int a int least optimal a0 int index 0 int least optNextUse initialize all the arrays used in generate void initialize set page faults to false for int i 0 i page Faul Scanner sc new Scanner Systemin int steppingslice 0 String prompt int frameNum int removedInt while steppingslic removedInt rmPages steppingslice SystemoutprintlnPage faults page Faultssteppingslice Yes No S DemandPagingSimulatorjava import javautilScanner import javautilArrayList import javautil Random import javautil InputmismatchException pub read input line stdinnext stdinnextLine switch line case O exit SystemoutprintlnGoodbye System break case 4 check that refString has been set 17 test rs if rs IsSet refString create simulation condition break default break end switch end while true end main private static int readCmdLineArg String args static ArrayList readRefstring Scanner in SystemoutprintlnEnter a series of numbers create RefString static ArrayList readRefstring Scanner in SystemoutprintlnEnter a series of numbers create RefString while listsize 1 return listreturn reference string static int getStringsize Scanner in read in a line pa Random rand new Random create ArrayList for ints ArrayList ar new ArrayList generate n rand Sample output Number of page frames set to 7 Please choose from the following options 0 Exit 1 Read reference string 2 Generate ref Please choose from the following options 0 Exit 1 Read reference string 2 Generate reference string 3 Display curren Memory information Algorithm type OPT Length of ref string 19 Number of virtual pages 10 Number of physical pages 7 Pre Snapshot at step 18 Program called virtual frame 4 Physical frame 0 4 Physical frame l 1 Physical frame 2 2 Physical Code to copy PhysicalFramejava public class PhysicalFrame int id int inserted int nextnext Use int lastlast Use int timesUsed PhysicalFrameint n id n inserted 1 next 1 last 1 timesUsed 0 Method to set the number void setNumint n id n Method to get the number int getNum return id Method to set the inserted void    See Answer
Get Answers to Unlimited Questions

Join us to gain access to millions of questions and expert answers. Enjoy exclusive benefits tailored just for you!

Membership Benefits:
  • Unlimited Question Access with detailed Answers
  • Zin AI - 3 Million Words
  • 10 Dall-E 3 Images
  • 20 Plot Generations
  • Conversation with Dialogue Memory
  • No Ads, Ever!
  • Access to Our Best AI Platform: Flex AI - Your personal assistant for all your inquiries!
Become a Member

Other questions asked by students