script_proba.py 1.42 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 22 23 24
        configuration.cycles_per_ms = 1
 
        configuration.etm = "pwcet"

        configuration.duration = 100 * configuration.cycles_per_ms
25 26

        # Add tasks:
27 28 29 30 31
        configuration.add_task(name="T1", identifier=1,
                              activation_date=0, pwcet=[(2,0.5), (4,0.5)],pmit=[(5,0.2),(6,0.8)], deadline=6, task_type = "Probabilistic",abort_on_miss=True)

        configuration.add_task(name="T2", identifier=2,
                              activation_date=0, pwcet=[(3,0.5),(4,0.5)],pmit=[(5,0.5), (7, 0.5)], deadline=7, task_type = "Probabilistic",abort_on_miss=True)
32 33 34 35 36

        # Add a processor:
        configuration.add_processor(name="CPU 1", identifier=1)

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

    # 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)

main(sys.argv)