pub enum NormalThreadSchedulePolicy {
Idle,
Batch,
Other,
}Expand description
Normal (non-realtime) schedule policies
For these schedule policies, niceness
is used.
Variants
Idle
For running very low priority background jobs.
(Since Linux 2.6.23.) SCHED_IDLE can be used only at static priority 0;
the process nice value has no influence for this policy.
This policy is intended for running jobs at extremely low priority (lower even than a +19 nice value with the SCHED_OTHER or SCHED_BATCH policies).
Batch
For “batch” style execution of processes.
(Since Linux 2.6.16.) SCHED_BATCH can be used only at static priority 0.
This policy is similar to SCHED_OTHER in that it schedules the thread
according to its dynamic priority (based on the nice value). The difference is
that this policy will cause the scheduler to always assume that the thread is
CPU-intensive. Consequently, the scheduler will apply a small scheduling penalty
with respect to wakeup behavior, so that this thread is mildly disfavored in scheduling decisions.
This policy is useful for workloads that are noninteractive, but do not want to lower their nice value, and for workloads that want a deterministic scheduling policy without interactivity causing extra preemptions (between the workload’s tasks).
Other
The standard round-robin time-sharing policy, also sometimes referred to as “Normal”.
SCHED_OTHER can be used at only static priority 0 (i.e., threads under real-time policies
always have priority over SCHED_OTHER processes). SCHED_OTHER is the standard Linux
time-sharing scheduler that is intended for all threads that do not require the special
real-time mechanisms.
The thread to run is chosen from the static priority 0 list based on a dynamic priority that is determined only inside this list. The dynamic priority is based on the nice value (see below) and is increased for each time quantum the thread is ready to run, but denied to run by the scheduler.
This ensures fair progress among all SCHED_OTHER threads.
In the Linux kernel source code, the SCHED_OTHER policy is actually named SCHED_NORMAL.
Trait Implementations
sourceimpl Clone for NormalThreadSchedulePolicy
impl Clone for NormalThreadSchedulePolicy
sourcefn clone(&self) -> NormalThreadSchedulePolicy
fn clone(&self) -> NormalThreadSchedulePolicy
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl Debug for NormalThreadSchedulePolicy
impl Debug for NormalThreadSchedulePolicy
sourceimpl Hash for NormalThreadSchedulePolicy
impl Hash for NormalThreadSchedulePolicy
sourceimpl Ord for NormalThreadSchedulePolicy
impl Ord for NormalThreadSchedulePolicy
sourcefn cmp(&self, other: &NormalThreadSchedulePolicy) -> Ordering
fn cmp(&self, other: &NormalThreadSchedulePolicy) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialEq<NormalThreadSchedulePolicy> for NormalThreadSchedulePolicy
impl PartialEq<NormalThreadSchedulePolicy> for NormalThreadSchedulePolicy
sourcefn eq(&self, other: &NormalThreadSchedulePolicy) -> bool
fn eq(&self, other: &NormalThreadSchedulePolicy) -> bool
This method tests for self and other values to be equal, and is used
by ==. Read more
sourceimpl PartialOrd<NormalThreadSchedulePolicy> for NormalThreadSchedulePolicy
impl PartialOrd<NormalThreadSchedulePolicy> for NormalThreadSchedulePolicy
sourcefn partial_cmp(&self, other: &NormalThreadSchedulePolicy) -> Option<Ordering>
fn partial_cmp(&self, other: &NormalThreadSchedulePolicy) -> Option<Ordering>
This method returns an ordering between self and other values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
impl Copy for NormalThreadSchedulePolicy
impl Eq for NormalThreadSchedulePolicy
impl StructuralEq for NormalThreadSchedulePolicy
impl StructuralPartialEq for NormalThreadSchedulePolicy
Auto Trait Implementations
impl RefUnwindSafe for NormalThreadSchedulePolicy
impl Send for NormalThreadSchedulePolicy
impl Sync for NormalThreadSchedulePolicy
impl Unpin for NormalThreadSchedulePolicy
impl UnwindSafe for NormalThreadSchedulePolicy
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more