Search Wiki:

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.

cpussrg.png

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


r3.png

Thank you

Granville
Last edited Apr 8 at 9:54 PM  by gbarnett, version 49
Comments
arvinthpsg wrote  May 14 at 3:35 PM  
i dont know how to use this framework...can u please help and i want to know how to link the files and compile using vs2008.

gbarnett wrote  May 17 at 6:55 PM  
If you go to the release page of 1.0 you will find a document called CPUSS. If you just want to use the framework for developing your own strategies you need only reference Cpuss.dll, if you want to you the strategies that ship with CPUSS you need to reference both Cpuss.dll, and Cpuss.Strategies.dll.

arvinthpsg wrote  May 26 at 11:48 AM  
can u explain me how u r getting the values of cpu activity and response time of a process using c# ?

gbarnett wrote  May 30 at 7:36 PM  
It is a synthetic simulation. The simulator enviroment replicates that of the OS and gathers metrics from that conceptual layer rather than using that of the OS scheduler.

arvinthpsg wrote  Jun 2 at 2:24 PM  
then how do you calculate the values...will the result will be correct,sir..

arvinthpsg wrote  Jun 2 at 2:25 PM  
i am very much interested in developing a real time CPU scheduler..can u help me...

Updating...