Operating Systems Project 4: RUIN– the RU virtual memory simulatIoN ************ comment each line Description For this project, you will build upon your job simulator from project 3 to create an...

hi ,Operating System C++ virtual memory simulatIoN project and i attached the instruction for this project and the previous source code with the inputfile and makefile.
if you need the instruction for project 3 i can send itto youplease let me know ASAP



Operating Systems Project 4: RUIN– the RU virtual memory simulatIoN ************ comment each line Description For this project, you will build upon your job simulator from project 3 to create an executable called RUIN. You will add the ability for the simulator to use virtual memory. Virtual memory is unlimited in this project. A page table will not be used for this project. A job is either in memory or it is not. The Most Recently Used algorithm will be used to determine which job will be switched into virtual memory if the system memory is full when a job is started or when the running job needs memory. The aspect measured by MRU will be the job that has been waiting the shortest amount of time to run. If there is a tie, choose the job that is farther away from the CPU from running. The running job can never be swapped to disk. When a job is added to the system it is allocated memory. This means that VM may be allocated before the first time unit has been executed in the simulation. When a job’s memory is stored on disk, it is required to fetch its contents in 2 time units before it can execute. This time is subtracted from the burst size which is guaranteed to be at least 2 in this project. Note: this may cause another job to swap its memory to disk. A program must fit in memory to run, if it uses more memory than the system has available it cannot be added to the run queue. Output for the RUIN shell commands The major commands for output are step and run from the previous project. You should add whether or not a job is in memory to your output. Sample usage scenario (on an empty binary file called sample.bin) ./RUIN sample.bin EnterCommand>setMemory 2 EnterCommand>addProgram first 3 1 EnterCommand>addProgram second 3 1 EnterCommand>addProgram third 3 1 EnterCommand>start first EnterCommand>start second EnterCommand>start third EnterCommand>setBurst 3 EnterCommand>run Advancing the system until all jobs finished Current time <0> Running job first has 3 time left and is using 1 memory resources. The queue is: Position 1: job second has 3 units left and is using 1 resource on disk. Position 2: job third has 3 units left and is using 1 memory resources. Current time <3> Running job second has 3 time left and is using 1 resource on disk. The queue is: Position 1: job third has 3 units left and is using 1 memory resources. Finished jobs are: first 3 3 Current time <6> Running job third has 3 time left and is using 1 memory resources. The queue is: Position 1: job second has 2 units left and is using 1 memory resources. Finished jobs are: first 3 3 Current time <9> Running job second has 2 time left and is using 1 memory resources. The queue is: empty Finished jobs are: first 3 3 third 3 9 Current time <11> Running job is empty The queue is: empty Finished jobs are: first 3 3 third 3 9 second 3 11 Note: your code must account for extraneous spaces or newlines. If it does not handle these input cases, a grade deduction will be made. Your program will be tested by inputting the commands listed earlier into a file, then redirected into your program via ./NAME < inputfile="" .="" if="" your="" program="" does="" not="" work="" in="" this="" manner,="" you="" will="" not="" receive="" a="" passing="" grade="" on="" the="" project.="" submission="" requirements:="" include="" all="" of="" your="" files="" in="" a="" directory="" named="" project4="" along="" with="" a="" makefile="" that="" can="" build="" your="" program="" and="" produce="" the="" ruin="" executable.="" i="" use="" auto-grading="" on="" these="" assignments.="" if="" your="" assignment="" does="" not="" follow="" them="" you="" will="" receive="" 0="" on="" the="" assignment.="" rubric="" .="" runtime:="" to="" get="" a="" c="" on="" your="" submission="" it="" must="" take="" the="" input="" from="" the="" specification="" and="" produce="" the="" output="" from="" the="" specification="" (albeit="" it="" cannot="" be="" hardcoded).="" to="" get="" a="" b="" on="" your="" submission="" it="" must="" produce="" correct="" output="" for="" at="" least="" ½="" of="" the="" additional="" test="" cases="" i="" will="" use="" on="" your="" program.="" to="" get="" an="" a="" on="" your="" submission="" it="" must="" produce="" correct="" output="" for="" all="" of="" the="" additional="" test="" cases="" i="" will="" use="" on="" your="" program.="" design:="" can="" lower="" your="" grade="" by="" one="" letter.="" deductions="" are="" made="" for="" choices="" such="" as="" all="" of="" your="" code="" in="" one="" function.="" use="" what="" you="" have="" learned="" from="" previous="" courses="" and="" you="" should="" have="" no="" issues="" with="" this="" deduction.="" comments:="" can="" lower="" your="" grade="" by="" one="" letter="" if="" your="" submission="" doesn’t="" contain="" comments="" on:="" variables="" –="" purpose,="" type,="" scope="" function="" headers="" (purpose,="" parameters,="" return="" type,="" called="" by="" calls)="" explanation="" for="" blocks="" of="" code="" (inline="" comments)="" readme="" file="" for="" program="" containing="" name,="" what="" it="" is,="" how="" to="" use="" it.="" header="" for="" every="" source="" file="" containing="" purpose="" and="" functions="" classes="" contained="" where="" to="" start="" looking.="" operating="" systems="" project="" 4:="" ruin="" –="" the="" ru="" virtual="" memory="" simulation="" ************="" com="" me="" nt="" each="" line="" description="" for="" this="" project,="" you="" will="" build="" upon="" your="" job="" simulator="" from="" project="" 3="" to="" create="" an="" executable="" ca="" lled="" ruin.="" you="" will="" add="" the="" ability="" for="" the="" simulator="" to="" use="" virtual="" memory.="" virtual="" memory="" is="" unlimited="" in="" this="" project.="" a="" page="" table="" will="" not="" be="" used="" for="" this="" project.="" a="" job="" is="" either="" in="" memory="" or="" it="" is="" not.="" the="" most="" recently="" used="" algorithm="" will="" be="" used="" to="" determine="" which="" job="" will="" be="" switched="" into="" virtual="" memory="" if="" the="" system="" memory="" is="" full="" when="" a="" job="" is="" started="" or="" when="" the="" running="" job="" needs="" memory.="" the="" aspect="" measured="" by="" mru="" will="" be="" the="" job="" that="" has="" been="" waiting="" the="" shortest="" amount="" of="" time="" to="" run.="" if="" there="" is="" a="" tie,="" choose="" the="" job="" that="" is="" farther="" away="" from="" the="" cpu="" from="" running.="" the="" running="" job="" can="" never="" be="" swapped="" to="" disk.="" when="" a="" job="" is="" added="" to="" the="" system="" it="" is="" allocated="" memory.="" this="" means="" that="" vm="" may="" be="" allocated="" before="" the="" first="" time="" unit="" h="" as="" been="" executed="" in="" the="" simulation.="" when="" a="" job’s="" memory="" is="" stored="" on="" disk,="" it="" is="" required="" to="" fetch="" its="" contents="" in="" 2="" time="" units="" before="" it="" can="" execute.="" this="" time="" is="" subtracted="" from="" the="" burst="" size="" which="" is="" guaranteed="" to="" be="" at="" least="" 2="" in="" this="" project.="" no="" te:="" this="" may="" cause="" another="" job="" to="" swap="" its="" memory="" to="" disk.="" a="" program="" must="" fit="" in="" memory="" to="" run,="" if="" it="" uses="" more="" memory="" than="" the="" system="" has="" available="" it="" cannot="" be="" added="" to="" the="" run="" queue.="" output="" for="" the="" ruin="" shell="" commands="" the="" major="" commands="" for="" outp="" ut="" are="" step="" and="" run="" from="" the="" previous="" project.="" you="" should="" add="" whether="" or="" not="" a="" job="" is="" in="" memory="" to="" your="" output.="" sample="" usage="" scenario="" (on="" an="" empty="" binary="" file="" called="" sample.bin)="" ./ruin="" sample.bin="" entercommand="">setMemory 2 EnterCommand>addProgram first 3 1 EnterCommand>addProgram second 3 1 EnterCommand>addProgram third 3 1 EnterCommand>start first EnterCommand>start second EnterCommand>start third EnterCommand>setBurst 3 EnterCommand>run Advancing the system until all jobs finished Current time <0> Operating Systems Project 4: RUIN– the RU virtual memory simulatIoN ************ comment each line Description For this project, you will build upon your job simulator from project 3 to create an executable called RUIN. You will add the ability for the simulator to use virtual memory. Virtual memory is unlimited in this project. A page table will not be used for this project. A job is either in memory or it is not. The Most Recently Used algorithm will be used to determine which job will be switched into virtual memory if the system memory is full when a job is started or when the running job needs memory. The aspect measured by MRU will be the job that has been waiting the shortest amount of time to run. If there is a tie, choose the job that is farther away from the CPU from running. The running job can never be swapped to disk. When a job is added to the system it is allocated memory. This means that VM may be allocated before the first time unit has been executed in the simulation. When a job’s memory is stored on disk, it is required to fetch its contents in 2 time units before it can execute. This time is subtracted from the burst size which is guaranteed to be at least 2 in this project. Note: this may cause another job to swap its memory to disk. A program must fit in memory to run, if it uses more memory than the system has available it cannot be added to the run queue. Output for the RUIN shell commands The major commands for output are step and run from the previous project. You should add whether or not a job is in memory to your output. Sample usage scenario (on an empty binary file called sample.bin) ./RUIN sample.bin EnterCommand>setMemory 2 EnterCommand>addProgram first 3 1 EnterCommand>addProgram second 3 1 EnterCommand>addProgram third 3 1 EnterCommand>start first EnterCommand>start second EnterCommand>start third EnterCommand>setBurst 3 EnterCommand>run Advancing the system until all jobs finished Current time <0> What need to be fix on the project It does not store data in the binary file between runs. Operating Systems Project
Apr 21, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here