Пример #1
0
def gen_taskset(periods, period_distribution, tasks_n, utilization,
                period_granularity=None, scale=ms2us, want_integral=True):
    if periods in NAMED_PERIODS:
        # Look up by name.
        (period_min, period_max) = NAMED_PERIODS[periods]
    else:
        # If unknown, then assume caller specified range manually.
        (period_min, period_max) = periods
    x = StaffordRandFixedSum(tasks_n, utilization, 1)
    if period_granularity is None:
        period_granularity = period_min
    periods = gen_periods(tasks_n, 1, period_min, period_max, period_granularity, period_distribution)
    ts = TaskSystem()

    periods = numpy.maximum(periods[0], max(period_min, period_granularity))

    C = scale(x[0] * periods)

    taskset = numpy.c_[x[0], C / periods, periods, C]
    for t in range(numpy.size(taskset,0)):
        ts.append(SporadicTask(taskset[t][3], scale(taskset[t][2])))

    if want_integral:
        quantize_params(ts)
    return ts
Пример #2
0
def gen_taskset(periods, period_distribution, tasks_n, utilization,
                period_granularity=None, scale=ms2us, want_integral=True):
    if periods in NAMED_PERIODS:
        # Look up by name.
        (period_min, period_max) = NAMED_PERIODS[periods]
    else:
        # If unknown, then assume caller specified range manually.
        (period_min, period_max) = periods
    x = StaffordRandFixedSum(tasks_n, utilization, 1)
    if period_granularity is None:
        period_granularity = period_min
    periods = gen_periods(tasks_n, 1, period_min, period_max, period_granularity, period_distribution)
    ts = TaskSystem()

    periods = numpy.maximum(periods[0], max(period_min, period_granularity))

    C = scale(x[0] * periods)

    taskset = numpy.c_[x[0], C / periods, periods, C]
    for t in range(numpy.size(taskset,0)):
        ts.append(SporadicTask(taskset[t][3], scale(taskset[t][2])))

    if want_integral:
        quantize_params(ts)
    return ts
Пример #3
0
def gen_tasksets(options):
    x = StaffordRandFixedSum(options.n, options.util, 1)
    periods = gen_periods(options.n, 1, options.permin, options.permax, options.pergran, options.perdist)
    ts = TaskSystem()

    C = x[0] * periods[0]
    if options.round_C:
        C = numpy.round(C, decimals=0)
    elif options.floor_C:
        C = numpy.floor(C)

    taskset = numpy.c_[x[0], C / periods[0], periods[0], C]
    for t in range(numpy.size(taskset,0)):
        ts.append(SporadicTask(taskset[t][3], taskset[t][2]))

#    print ts
    return ts
Пример #4
0
def gen_tasksets(options):
    x = StaffordRandFixedSum(options.n, options.util, 1)
    periods = gen_periods(options.n, 1, options.permin, options.permax, options.pergran, options.perdist)
    ts = TaskSystem()

    C = x[0] * periods[0]
    if options.round_C:
        C = numpy.round(C, decimals=0)
    elif options.floor_C:
        C = numpy.floor(C)

    taskset = numpy.c_[x[0], C / periods[0], periods[0], C]
    for t in range(numpy.size(taskset,0)):
        ts.append(SporadicTask(taskset[t][3], taskset[t][2]))

#    print ts
    return ts