示例#1
0
def gensavetasksets(schedulers, n, nsets, u, min_p, max_p, outdir):

    # Manual configuration:
    configuration = Configuration()
    configuration.duration = 1000 * configuration.cycles_per_ms

    u = task_generator.StaffordRandFixedSum(n, u, nsets)
    periods = task_generator.gen_periods_uniform_ex(n, nsets, min_p, max_p,
                                                    10000000, True)
    # Add processors.
    for i in range(1, 5):
        configuration.add_processor(name="CPU " + str(i), identifier=i)

    if not os.path.exists(outdir):
        os.mkdir(outdir)

    for i, exp_set in enumerate(task_generator.gen_tasksets(u, periods)):
        for scheduler_name in schedulers:
            configuration.scheduler_info.clas = scheduler_name
            #            print("{}:".format(scheduler_name))
            while configuration.task_info_list:
                del configuration.task_info_list[0]
            id_ = 1
            for (c, p) in exp_set:
                configuration.add_task(name="T{}".format(id_),
                                       identifier=id_,
                                       period=p,
                                       activation_date=0,
                                       wcet=c,
                                       deadline=p,
                                       abort_on_miss=True)
                id_ += 1

            configuration.duration = configuration.get_hyperperiod(
            ) * configuration.cycles_per_ms

            # Vérification de la config.
            configuration.check_all()

            # save one taskset
            configuration.save(outdir + "/exp_{}.xml".format(i + 1))