Build upon your job simulator from project 3 to create an


Operating Systems Project Assignment: RUIN- the RU virtual memory simulation

In doing this project, abide by the RU Honor Code or you will fail the assignment and possibly the course. This is not a group assignment

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

Request for Solution File

Ask an Expert for Answer!!
Operating System: Build upon your job simulator from project 3 to create an
Reference No:- TGS02746898

Expected delivery within 24 Hours