pub struct Sporadic {
pub min_inter_arrival: Duration,
pub jitter: Duration,
}Expand description
The classic sporadic arrival model (originally due to Mok) with release jitter.
A note on terminology: following standard convention, the arrival time of a job denotes the time at which (conceptually) the job is triggered, whereas its release time is the time at which it actually becomes ready for execution.
Fields§
§min_inter_arrival: DurationThe minimum inter-arrival separation between any two job arrivals of the task.
jitter: DurationThe maximum release jitter, i.e., the maximum time between the arrival and the release of a job.
Implementations§
Source§impl Sporadic
impl Sporadic
Sourcepub fn new(min_inter_arrival: Duration, jitter: Duration) -> Sporadic
pub fn new(min_inter_arrival: Duration, jitter: Duration) -> Sporadic
Construct a new sporadic arrival model with the given inter-arrival time and jitter.
Sourcepub fn new_zero_jitter(min_inter_arrival: Duration) -> Sporadic
pub fn new_zero_jitter(min_inter_arrival: Duration) -> Sporadic
Construct a new sporadic arrival model with the given inter-arrival time and no jitter.
Trait Implementations§
Source§impl ArrivalBound for Sporadic
impl ArrivalBound for Sporadic
Source§fn number_arrivals(&self, delta: Duration) -> usize
fn number_arrivals(&self, delta: Duration) -> usize
Bound the number of jobs released in any interval of length
delta.Source§fn steps_iter<'a>(&'a self) -> Box<dyn Iterator<Item = Duration> + 'a>
fn steps_iter<'a>(&'a self) -> Box<dyn Iterator<Item = Duration> + 'a>
Yield the sequence of interval lengths (i.e., values of
delta in
ArrivalBound::number_arrivals) for which the arrival bound
“steps”, i.e., where it shows an increase in the number of
released jobs. Read moreSource§fn clone_with_jitter(&self, added_jitter: Duration) -> Box<dyn ArrivalBound>
fn clone_with_jitter(&self, added_jitter: Duration) -> Box<dyn ArrivalBound>
Clone the arrival model while accounting for added release
jitter. Returns a boxed
dyn object because the underlying
type may change.Source§fn brute_force_steps_iter<'a>(
&'a self,
) -> Box<dyn Iterator<Item = Duration> + 'a>
fn brute_force_steps_iter<'a>( &'a self, ) -> Box<dyn Iterator<Item = Duration> + 'a>
Same semantics as ArrivalBound::steps_iter, but provided by
a default implementation in the most naive way possible.
Avoid if performance is at all important.
impl Copy for Sporadic
Auto Trait Implementations§
impl Freeze for Sporadic
impl RefUnwindSafe for Sporadic
impl Send for Sporadic
impl Sync for Sporadic
impl Unpin for Sporadic
impl UnwindSafe for Sporadic
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more