script.py 1.63 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#!/usr/bin/python3

"""
Example of a script that uses SimSo.
"""

import sys
from simso.core import Model
from simso.configuration import Configuration


def main(argv):
    if len(argv) == 2:
        # Configuration load from a file.
        configuration = Configuration(argv[1])
    else:
        # Manual configuration:
        configuration = Configuration()

20 21
        configuration.cycles_per_ms = 1

22
        configuration.duration = 100 * configuration.cycles_per_ms
23 24 25 26 27

        # Add tasks:
        configuration.add_task(name="T1", identifier=1, period=7,
                               activation_date=0, wcet=3, deadline=7)
        configuration.add_task(name="T2", identifier=2, period=12,
28
                               activation_date=0, wcet=3, deadline=8)
29 30
        configuration.add_task(name="T4", identifier=4, period=15,
                               activation_date=0, wcet=5, deadline=14)
31
        configuration.add_task(name="T3", identifier=3, period=20,
32
                               activation_date=0, wcet=5, deadline=9)
33 34

        # Add a processor:
35 36
    configuration.add_processor(name="CPU 1", identifier=1, cs_overhead=1)
    configuration.add_processor(name="CPU 2", identifier=2, cs_overhead=1)
37

38 39 40
    # Add a scheduler:
    #configuration.scheduler_info.filename = "../simso/schedulers/RM.py"
    configuration.scheduler_info.clas = "simso.schedulers.RM"
41 42 43 44 45 46 47 48 49 50 51 52 53 54

    # Check the config before trying to run it.
    configuration.check_all()

    # Init a model from the configuration.
    model = Model(configuration)

    # Execute the simulation.
    model.run_model()

    # Print logs.
    for log in model.logs:
        print(log)

55

56
main(sys.argv)