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...

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


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


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


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


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


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 <>  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.









May 18, 2022
SOLUTION.PDF

Get Answer To This Question

Submit New Assignment

Copy and Paste Your Assignment Here