pub struct TaskSet {
pub tasks: Vec<Task>,
}Expand description
A task set for the static schedulability analysis.
Fields§
§tasks: Vec<Task>The contained tasks.
Implementations§
Source§impl TaskSet
impl TaskSet
Sourcepub fn utilization(&self) -> f64
pub fn utilization(&self) -> f64
Total utilization U = Σ C_i/T_i.
Sourcepub fn liu_layland_bound(n: usize) -> f64
pub fn liu_layland_bound(n: usize) -> f64
The Liu & Layland utilization bound n·(2^(1/n) − 1) for n tasks.
Sourcepub fn assign_rate_monotonic(&mut self)
pub fn assign_rate_monotonic(&mut self)
Assigns rate-monotonic priorities: shorter period → higher priority.
The priorities are assigned evenly across 0..=MAX in order
(unique, as long as ≤ 32768 tasks).
Sourcepub fn response_time(&self, i: usize) -> Option<u64>
pub fn response_time(&self, i: usize) -> Option<u64>
Exact worst-case response time R_i of task i via fixed-point iteration.
None if R_i exceeds the deadline (task not schedulable).
Sourcepub fn response_times(&self) -> Vec<Option<u64>>
pub fn response_times(&self) -> Vec<Option<u64>>
Response times of all tasks (index-parallel to tasks).
Sourcepub fn is_schedulable_rta(&self) -> bool
pub fn is_schedulable_rta(&self) -> bool
Exact schedulability test (response-time analysis): all R_i ≤ D_i.
Sourcepub fn is_schedulable_ll(&self) -> bool
pub fn is_schedulable_ll(&self) -> bool
Sufficient schedulability test (Liu & Layland): U ≤ n·(2^(1/n) − 1).
Only meaningful for rate-monotonic with implicit deadlines; a false
does not necessarily mean not-schedulable (use RTA in that case).