Operating SystemsProject 1: RATCH – the Ru bacTC simulatorDescriptionFor this project, you will build upon your interactive shell from project 2. You will add the ability to start programs and...

Operating SystemsProject 1: RATCH – the Ru bacTC simulatorDescriptionFor this project, you will build upon your interactive shell from project 2. You will add the ability to start programs and simulate their execution similar to what has been done in class. The system will have a set amount of memory, a variable burst time, and uses a round robin queue for keeping track of running processes.Commands the RUSH shell will implement for this projectstart - Add the program to the simulatorstep - Advance the system X units of timesetBurst - Set the amount of time a process gets on the CPU before being moved tothe back of the queuesetMemory - Set the amount of memory available for the systemgetMemory – Print out the amount of memory for the systemrun – Advance the simulator until no jobs are left to runaddProgram * is // Both are integers and pairs will be// added in ascending orderThis command adds a program to the filesystem in the current directorytimeTodoIO is relative to the process not the system timeNotes on simulation:When a job goes to run, the system must have memory to support it otherwise it will not run. When a job asks for I/O, it must be removed from the queue until it finishes the I/O request. Once it is finished it will go to the back of the ready queue.Whenever the current job is finished or leaves the queue, an updated system state should be printed out.Output for the RUSH shell commandsThe major commands for output are step and run. Both should output the follow information. This information can be presented in any way, but it should be easily understandable / readable. step or run should respond with the following:Advancing the system for units or all jobs finished Current time Running job has units left and is using memory resources. The queue is:Position 1: job has units left and is using memory resources.Position 2: job has units left and is using memory resources.Finished jobs are: Next burst time Running job has units left and is using memory resources. The queue is:Position 1: job has units left and is using memory resources.Position 2: job has units left and is using memory resources.Finished jobs are: Sample usage scenario (on an empty binary file called sample.bin)./RATCH sample.binEnterCommand>setMemory 3EnterCommand>addProgram first 4 1 1 1 EnterCommand>addProgram second 4 1 EnterCommand>addProgram third 2 1 EnterCommand>setBurst 4EnterCommand>start firstEnterCommand>start secondEnterCommand>start thirdEnterCommand>runAdvancing the system until all jobs finishedCurrent time Running job first has 4 time left and is using 1 memoryresources. The queue is:Position 1: job second has 4 units left and is using 1 memory resources.Position 2: job third has 2 units left and is using 1 memory resources.Current time Running job second has 4 time left and is using 1memory resources. The queue is:Position 2: job third has 2 units left and is using 1 memory resources.The process first is obtaining IO and will be back in 1 unit. Current time Running job third has 2 time left and is using 1 memoryresources. The queue is:Position 1: job first has 3 units left and is using 1memory resources. Finished jobs are:second 4 5 Current time Running job first has 3 time left and is using 1 memory resources.The queue is: emptyFinished jobs are:second 4 5third 2 7 Current time Running job is emptyThe queue is: emptyFinished jobs are: second 4 5 third 2 7 first 4 10Note: 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 Submission requirements:Include all of your files in a directory name project3_ RUEmailLogin along with a Makefile that can build your program and produce the RATCH executable. Tar and gzip this directory into the file project3_ RUEMailLogin.tar.gz and submit it to D2L.When I untar the file with tar xfzv project3_ RUEMailLogin.tar.gz I expect one directory to be produced (project3_ RUEMailLogin) that contains your source code and a Makefile that will build your program.I use auto-grading on these assignments. If your assignment does not follow them you will receive at most a 0 on the assignment.RubricSubmission requirements: If not met, you receive a 0 for your submission. Homework/Project 1/Project 2 should have provided feedback necessary to successfully submit this project.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 1⁄2 of theadditional test cases I will use on your program.To get an A on your submission it must produce correct output for all of theadditional test cases I will use on your program.Design:Comments:Can lower your grade by one letter if your submission doesn’t contain comments on:Variables – purpose, type, scopeFunction 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.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.
Mar 31, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here