Question
Problem Overview This project must be written in java and will simulate a scheduler scheduling a set of jobs. The project will allow the user
Problem Overview
This project must be written in java and will simulate a scheduler scheduling a set of jobs.
The project will allow the user to choose a scheduling algorithm listed below . It will output a representation of how the jobs are executed.
***Scheduling Algorithms***
First-come-first-served
Round-robin
Shortest process next
Shortest remaining time
Highest response ratio next
Feedback
Design
Let a job be represented as an object. A job needs to store such things as its name, arrival time, and duration. The running of a job can be simulated by calling a run method on the job. A job can have two run methods, one that runs it to completion, and one that runs it a given number of time slices. A job can be thought of as encompassing its PCB contents, so it is okay to store execution time on the job.
Schedulers can also be represented as objects. A scheduler will receive a list of job objects when it is created. It will need to do a few basic things. One is to select a job to run from the set of jobs. Another is to execute the selected job. It must also keep track of time and handle arriving jobs
Note that a scheduler can be preemptive or nonpreemptive. For nonpreemptive schedulers, once a job is chosen, it runs to completion. For preemptive schedulers, once a job is chosen, it runs n time slices depending on the time slice duration, which could be one unit of time or more than one.
To keep things simple, a job will simply print its name once for each unit of its duration. So if a job has duration five, its task is to print its name five times. Its name should just be a letter, such as A-Z. If run preemptively, it will only print its name for the number of time slices passed.
In this design you will have six different scheduler classes. Since there is commonality, you can derive these from an abstract Scheduler class then override methods as needed for each specific algorithm.
To get the project running, use an OS class which reads the jobs from a file and creates Job objects, inputs the scheduler to use by menu or command line argument, then creates the scheduler object and passes the list of jobs. The scheduler object should then produce a graph illustrating how they ran. The graph can be text-based or can use graphics.
Other Requirements
For ease of grading, provide an ALL option that runs all six algorithms in one run.
HRRN should use 3 queues.
RR should allow the user to specify the quantum size.
Sample Output
Below is sample text-based output. For graphical output, you can make the graph look like the ones in the textbook and slides.
FCFS
AAA
BBBBBB
CCCC
DDDDD
EE
Round Robin, quantum=1
AA A
B B B B B B
C C C C
D D D DD
E E
Note that printing this horizontally as shown requires storing the output then printing it line by line. You may also print this out other ways such as vertically, as long as the grader can determine that the output is correct.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started