def bound_cfl_with_oh(oheads, dedicated_irq, clusts): for clust in clusts: success = charge_scheduling_overheads(oheads, clust.cpus, dedicated_irq, clust) quantize_params(clust) if (success and has_bounded_tardiness(clust.cpus, clust)): bound_gfl_response_times(clust.cpus, clust, 15) else: return False return True
def bound_cfl_with_locks(tasks, clusts, oheads, cluster_size): preprocess_ts(tasks, clusts, oheads) completion_ok = False count = 0 while not completion_ok: completion_ok = True new_ts, new_clusts = copy_ts(tasks, clusts) count += 1 if count > 100: return False apply_task_fair_mutex_bounds(new_ts, cluster_size, 0) if not post_blocking_term_oh_inflation(oheads, new_clusts): return False for i, clust in enumerate(new_clusts): if not has_bounded_tardiness(clust.cpus, clust): return False bound_gfl_response_times(clust.cpus, clust, 15) for j, t in enumerate(clust): if t.response_time > clusts[i][j].response_time: completion_ok = False return new_clusts