-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Daniel Kantor
Derek Levine
This project is attempting to create a simulation of a CPU scheduler. It assigns 40 different processes that are of random service times and memory requirements to one of four processors. These random processes will be created by a user specified seed value that generates the random numbers for the service time and memory requirements. The project has four different scenarios with the four processors having differing speeds and memory capacity in each scenario. These scenarios are:
- Scenario 1 - All four processors have an identical speed of 3GHz and identical memory capacities of 8GB
- Scenario 2 - All four processors have identical speeds of 3GHz. However, they have varying memory capacities with processor 1 and processor 2 having 2GB available, processor 3 with 4GB available and processor 4 with 8GB.
- Scenario 3 - All four processors will have different speeds. Processor 1 and processor 2 have speeds of 2GHz, processor 3 has a speed of 3GHz, and processor 4 has a speed of 4GHz. These processors will all have the same memory capacities at 8GB.
- Scenario 4 - All four processors will have the same speed of 3GHz and memory capacities of 8GB. However, the system will only be able to handle the first process, not allowing you to inspect the entire set of processes. You must schedule the processes in the order they arrive.
The user will be able to choose which scenario they wish to run and within that they will choose to run through one of two different scheduling methodologies that we have implemented, our chosen ones are First In First Out (FIFO) and Shortest Job First (SJF). We will keep track of several data points for each scenario and they will be output at the end of scenario execution. These data point are:
- The total turnaround time for the system
- The average wait time
- The list of processes in the order they were processed, and for each process
- ID number
- Service time
- Memory requirements
- Wait time
- Turnaround time
Some other project constraints:
- For scenario 4, we are unable to inspect the entire set of processes and we must schedule them in the order that they were generated.
- Must attempt to minimize total turnaround time
- Must be written in C++
- Must provide menus for the user to select which scenario they wish as well as a menu to allow users to pick which scheduling algorithm to run
- A scenario should be completed in a reasonable amount of time (no more than 10 minutes)