What is CPUSS?
CPU Scheduling Simulator (CPUSS) is a framework that allows you to quickly and easily design and gather metrics for custom CPU scheduling strategies.
Features
CPUSS records the following metrics about your scheduling algorithm:
- Average process wait times
- Idle CPU time
- Busy CPU time
- Wait time mean
- Wait time standard deviation
- Response time mean
- Response time standard deviation
- Turnaround time mean
- Turnaround time standard deviation
- Throughput stats
- Throughput mean
- For each process
- Arrival time
- Start time
- Completion time
- CPU activity
- Burst time
- Id
- Priority
- Wait time
- Turnaround time
- Response time
As well as the core features CPUSS also allows you to:
- Define the processes to schedule
- Auto generate the processes to schedule (varying burst time properties)
- Log results to SQL Server
- Hook into events
- Simulation Started/Completed
- Process Started/Preempted/Resumed/Completed
have also included the following strategies so far:
- First Come First Served
- Round Robin (time quantum can be defined)
- Shortest Job First*
- Priority First*
- SJF with Priority Elevation rule (threshold can be defined)*
* indicates that the poll time of this strategy can be defined
CPUSS Report Generator (CPUSSRG)
CPUSSRG allows you to quickly and effeciently generate a report and view some of the key stats from the simulation (avg/std dev/var wait times, cpu utilization etc). You can run the simulation many times to get a broader picture of the data for further analysis.
The following command was used to generate the below (I have only shown a bit of the graph, there is much more info in the report than this):
CURRENT DIR>cpussrg /report:sjfe /outdir:C:\<user>\Desktop\reports /strategy:ShortestJobFirstExpert,10,60 /small:50
/medium:50 /large:50 /repeat:20
Thank you
Granville