Uh... Maybe the description above can be improved :)+ In more details, the CBS algorithm assigns scheduling deadlines to
+ tasks in the following way:
+
+ - Each SCHED_DEADLINE task is characterised by the "runtime",
+ "deadline", and "period" parameters;
+
+ - The state of the task is described by a "scheduling deadline", and
+ a "current runtime". These two parameters are initially set to 0;
+
+ - When a SCHED_DEADLINE task wakes up (becomes ready for execution),
+ the scheduler checks if
+
+ current runtime runtime
+ ---------------------------------- > ----------------
+ scheduling deadline - current time period
+
+ then, if the scheduling deadline is smaller than the current time, or
+ this condition is verified, the scheduling deadline and the
+ current budget are re-initialised as
Current runtime: time spent running _this_ period? or is _remaining_
runtime this period? I get the feeling it's the latter.
So, roughly, it is the ration
remaining_runtime / relative_time_to_deadline
which needs to be greater than the assigned CPU bandwidth, and if so, the
budget should be replensihed?
Shouldn't there be something about not refilling the budget before a new
period has started?