Esempio n. 1
0
        task_list.append(task)

    for index in range(1, len(task_list)):
        # Downscale the failing task by minimum amount.
        while task_list[index].current > task_list[index -1].current:
            task_list[index].ScaleDown1()


    consumption = battery.tasks_consumption(38, tasks)

    print(battery.battery_failed)

    while battery.battery_failed:
        failed_task = battery.failed_task
        failed_task.ScaleDown()
        tasks.calculate_runtime()
        consumption = battery.tasks_consumption(38, tasks)

    plot_consumption(battery, tasks)
    ### Phase 2
    # Overall planning strategy to scale down based on maximum slack time
    slack_times = {}
    for task in task_list:
        if task.slack > 0:
            slack_times[task] = task.slack
        print(f'Task {task} with slack time {task.slack}')

    while slack_times:
        max_slack_task = max(slack_times.items(), key=operator.itemgetter(1))[0]
        print(f'Task {max_slack_task} with slack time {slack_times[max_slack_task]}')
        max_slack_task.ScaleDown1()