This project is read-only.

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.


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


Last edited Apr 8, 2008 at 10:54 PM by gbarnett, version 49