SimSo is a scheduling simulator for real-time multiprocessor architectures that takes into account some scheduling overheads (scheduling decisions, context switches) and the impact of caches through statistical models. Based on a Discrete-Event Simulator (SimPy), it allows quick simulations and a fast prototyping of scheduling policies using Python.
SimSo is an open source software, available under the CeCILL license, a GPL compatible license.
You can find the last version of SimSo on the SimSo Website.
SimSo is available for the main platforms and so is its source code. The archive containing the source code is more often updated and should be used when possible.
In order to install SimSo from the souce code, the dependences must be installed first. Then, type “python setup.py install” to install SimSo.
When using SimSo from the sources, the following softwares and librairies are required:
- Python 2.7+
- SimPy 2.3.1 (not compatible with SimPy 3)
- NumPy 1.6+
- PyQt4 4.9+
If you are using a binary, everything should be packed in the binary.
SimSo is provided with a graphical user interface that aims to be very easy to use. This is a good way to develop and test a scheduler. See How to write a scheduling policy.
It is also possible to use SimSo as a library. This allows in particular to run simulations in text mode with a maximum of flexibility.
Currently, the following schedulers are available:
Uniprocessor schedulers
- Earliest Deadline First (EDF)
- Rate Monotonic (RM)
- Fixed Priority (FP)
- Static-EDF (A DVFS EDF)
- CC-EDF: Real-Time dynamic voltage scaling for low-power embedded operating systems by P. Pillai et al.
Any uniprocessor scheduler using a partitionning algorithm. The following heuristics are provided: