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§
Source§impl Clone for NormalThreadSchedulePolicy
impl Clone for NormalThreadSchedulePolicy
Source§fn clone(&self) -> NormalThreadSchedulePolicy
fn clone(&self) -> NormalThreadSchedulePolicy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more