mirror of https://github.com/mkerrisk/man-pages
ffix
This commit is contained in:
parent
f25eaea8f3
commit
5917ad3d34
|
@ -45,11 +45,11 @@ returns the minimum priority value that can be used with the
|
|||
scheduling algorithm identified by \fIpolicy\fR.
|
||||
Supported \fIpolicy\fR
|
||||
values are
|
||||
.IR SCHED_FIFO ,
|
||||
.IR SCHED_RR ,
|
||||
.IR SCHED_OTHER ,
|
||||
.BR SCHED_FIFO ,
|
||||
.BR SCHED_RR ,
|
||||
.BR SCHED_OTHER ,
|
||||
and
|
||||
.IR SCHED_BATCH .
|
||||
.BR SCHED_BATCH .
|
||||
Further details about these policies can be found in
|
||||
.BR sched_setscheduler (2).
|
||||
|
||||
|
@ -63,8 +63,8 @@ value returned by
|
|||
.BR sched_get_priority_min ().
|
||||
|
||||
Linux allows the static priority value range 1 to 99 for
|
||||
\fISCHED_FIFO\fR and \fISCHED_RR\fR and the priority 0 for
|
||||
\fISCHED_OTHER\fR and \fISCHED_BATCH\fP.
|
||||
\fBSCHED_FIFO\fR and \fBSCHED_RR\fR and the priority 0 for
|
||||
\fBSCHED_OTHER\fR and \fBSCHED_BATCH\fP.
|
||||
Scheduling priority ranges for the various policies
|
||||
are not alterable.
|
||||
|
||||
|
@ -75,7 +75,7 @@ priority range and map it to the interval given by
|
|||
and
|
||||
.BR sched_get_priority_min ().
|
||||
POSIX.1-2001 requires a spread of at least 32 between the maximum and the
|
||||
minimum values for \fISCHED_FIFO\fR and \fISCHED_RR\fR.
|
||||
minimum values for \fBSCHED_FIFO\fR and \fBSCHED_RR\fR.
|
||||
|
||||
POSIX systems on which
|
||||
.BR sched_get_priority_max ()
|
||||
|
|
|
@ -54,7 +54,7 @@ If
|
|||
\fIpid\fR is zero, the time quantum for the calling process is written
|
||||
into *\fItp\fR.
|
||||
The identified process should be running under the
|
||||
.I SCHED_RR
|
||||
.B SCHED_RR
|
||||
scheduling policy.
|
||||
|
||||
.\" The round-robin time quantum value is not alterable under Linux
|
||||
|
|
|
@ -64,13 +64,13 @@ The interpretation of
|
|||
the parameter \fIparam\fP depends on the selected policy.
|
||||
Currently, the
|
||||
following three scheduling policies are supported under Linux:
|
||||
.IR SCHED_FIFO ,
|
||||
.IR SCHED_RR ,
|
||||
.IR SCHED_OTHER ,
|
||||
.BR SCHED_FIFO ,
|
||||
.BR SCHED_RR ,
|
||||
.BR SCHED_OTHER ,
|
||||
.\" In the 2.6 kernel sources, SCHED_OTHER is actually called
|
||||
.\" SCHED_NORMAL.
|
||||
and
|
||||
.IR SCHED_BATCH ;
|
||||
.BR SCHED_BATCH ;
|
||||
their respective semantics are described below.
|
||||
|
||||
.BR sched_getscheduler ()
|
||||
|
@ -98,18 +98,18 @@ The scheduling policy determines for
|
|||
each process, where it will be inserted into the list of processes
|
||||
with equal static priority and how it will move inside this list.
|
||||
|
||||
\fISCHED_OTHER\fP is the default universal time-sharing scheduler
|
||||
\fBSCHED_OTHER\fP is the default universal time-sharing scheduler
|
||||
policy used by most processes.
|
||||
\fISCHED_BATCH\fP is intended for "batch" style execution of processes.
|
||||
\fISCHED_FIFO\fP and \fISCHED_RR\fP are
|
||||
\fBSCHED_BATCH\fP is intended for "batch" style execution of processes.
|
||||
\fBSCHED_FIFO\fP and \fBSCHED_RR\fP are
|
||||
intended for special time-critical applications that need precise
|
||||
control over the way in which runnable processes are selected for
|
||||
execution.
|
||||
|
||||
Processes scheduled with \fISCHED_OTHER\fP or \fISCHED_BATCH\fP
|
||||
Processes scheduled with \fBSCHED_OTHER\fP or \fBSCHED_BATCH\fP
|
||||
must be assigned the static priority 0.
|
||||
Processes scheduled under \fISCHED_FIFO\fP or
|
||||
\fISCHED_RR\fP can have a static priority in the range 1 to 99.
|
||||
Processes scheduled under \fBSCHED_FIFO\fP or
|
||||
\fBSCHED_RR\fP can have a static priority in the range 1 to 99.
|
||||
The system calls
|
||||
.BR sched_get_priority_min (2)
|
||||
and
|
||||
|
@ -125,26 +125,26 @@ The scheduling policy only determines the
|
|||
ordering within the list of runnable processes with equal static
|
||||
priority.
|
||||
.SS SCHED_FIFO: First In-First Out scheduling
|
||||
\fISCHED_FIFO\fP can only be used with static priorities higher than
|
||||
0, which means that when a \fISCHED_FIFO\fP processes becomes runnable,
|
||||
\fBSCHED_FIFO\fP can only be used with static priorities higher than
|
||||
0, which means that when a \fBSCHED_FIFO\fP processes becomes runnable,
|
||||
it will always immediately preempt any currently running
|
||||
\fISCHED_OTHER\fP or \fISCHED_BATCH\fP process.
|
||||
\fISCHED_FIFO\fP is a simple scheduling
|
||||
\fBSCHED_OTHER\fP or \fBSCHED_BATCH\fP process.
|
||||
\fBSCHED_FIFO\fP is a simple scheduling
|
||||
algorithm without time slicing.
|
||||
For processes scheduled under the
|
||||
\fISCHED_FIFO\fP policy, the following rules are applied: A
|
||||
\fISCHED_FIFO\fP process that has been preempted by another process of
|
||||
\fBSCHED_FIFO\fP policy, the following rules are applied: A
|
||||
\fBSCHED_FIFO\fP process that has been preempted by another process of
|
||||
higher priority will stay at the head of the list for its priority and
|
||||
will resume execution as soon as all processes of higher priority are
|
||||
blocked again.
|
||||
When a \fISCHED_FIFO\fP process becomes runnable, it
|
||||
When a \fBSCHED_FIFO\fP process becomes runnable, it
|
||||
will be inserted at the end of the list for its priority.
|
||||
A call to
|
||||
.BR sched_setscheduler ()
|
||||
or
|
||||
.BR sched_setparam (2)
|
||||
will put the
|
||||
\fISCHED_FIFO\fP (or \fISCHED_RR\fP) process identified by
|
||||
\fBSCHED_FIFO\fP (or \fBSCHED_RR\fP) process identified by
|
||||
\fIpid\fP at the start of the list if it was runnable.
|
||||
As a consequence, it may preempt the currently running process if
|
||||
it has the same priority.
|
||||
|
@ -157,22 +157,22 @@ A process calling
|
|||
will be
|
||||
put at the end of the list.
|
||||
No other events will move a process
|
||||
scheduled under the \fISCHED_FIFO\fP policy in the wait list of
|
||||
scheduled under the \fBSCHED_FIFO\fP policy in the wait list of
|
||||
runnable processes with equal static priority.
|
||||
A \fISCHED_FIFO\fP
|
||||
A \fBSCHED_FIFO\fP
|
||||
process runs until either it is blocked by an I/O request, it is
|
||||
preempted by a higher priority process, or it calls
|
||||
.BR sched_yield (2).
|
||||
.SS SCHED_RR: Round Robin scheduling
|
||||
\fISCHED_RR\fP is a simple enhancement of \fISCHED_FIFO\fP.
|
||||
\fBSCHED_RR\fP is a simple enhancement of \fBSCHED_FIFO\fP.
|
||||
Everything
|
||||
described above for \fISCHED_FIFO\fP also applies to \fISCHED_RR\fP,
|
||||
described above for \fBSCHED_FIFO\fP also applies to \fBSCHED_RR\fP,
|
||||
except that each process is only allowed to run for a maximum time
|
||||
quantum.
|
||||
If a \fISCHED_RR\fP process has been running for a time
|
||||
If a \fBSCHED_RR\fP process has been running for a time
|
||||
period equal to or longer than the time quantum, it will be put at the
|
||||
end of the list for its priority.
|
||||
A \fISCHED_RR\fP process that has
|
||||
A \fBSCHED_RR\fP process that has
|
||||
been preempted by a higher priority process and subsequently resumes
|
||||
execution as a running process will complete the unexpired portion of
|
||||
its round robin time quantum.
|
||||
|
@ -183,8 +183,8 @@ retrieved using
|
|||
.\" by the process nice value -- MTK
|
||||
.\"
|
||||
.SS SCHED_OTHER: Default Linux time-sharing scheduling
|
||||
\fISCHED_OTHER\fP can only be used at static priority 0.
|
||||
\fISCHED_OTHER\fP is the standard Linux time-sharing scheduler that is
|
||||
\fBSCHED_OTHER\fP can only be used at static priority 0.
|
||||
\fBSCHED_OTHER\fP is the standard Linux time-sharing scheduler that is
|
||||
intended for all processes that do not require special static priority
|
||||
real-time mechanisms.
|
||||
The process to run is chosen from the static
|
||||
|
@ -198,12 +198,12 @@ or
|
|||
and increased for
|
||||
each time quantum the process is ready to run, but denied to run by
|
||||
the scheduler.
|
||||
This ensures fair progress among all \fISCHED_OTHER\fP
|
||||
This ensures fair progress among all \fBSCHED_OTHER\fP
|
||||
processes.
|
||||
.SS SCHED_BATCH: Scheduling batch processes
|
||||
(Since Linux 2.6.16.)
|
||||
\fISCHED_BATCH\fP can only be used at static priority 0.
|
||||
This policy is similar to \fISCHED_OTHER\fP, except that
|
||||
\fBSCHED_BATCH\fP can only be used at static priority 0.
|
||||
This policy is similar to \fBSCHED_OTHER\fP, except that
|
||||
this policy will cause the scheduler to always assume
|
||||
that the process is CPU-intensive.
|
||||
Consequently, the scheduler will apply a small scheduling
|
||||
|
@ -280,7 +280,7 @@ or
|
|||
.BR mlockall (2).
|
||||
|
||||
As a non-blocking end-less loop in a process scheduled under
|
||||
\fISCHED_FIFO\fP or \fISCHED_RR\fP will block all processes with lower
|
||||
\fBSCHED_FIFO\fP or \fBSCHED_RR\fP will block all processes with lower
|
||||
priority forever, a software developer should always keep available on
|
||||
the console a shell scheduled under a higher static priority than the
|
||||
tested application.
|
||||
|
@ -317,7 +317,7 @@ The calling process does not have appropriate privileges.
|
|||
The process whose ID is \fIpid\fP could not be found.
|
||||
.SH "CONFORMING TO"
|
||||
POSIX.1-2001.
|
||||
The \fISCHED_BATCH\fP policy is Linux specific.
|
||||
The \fBSCHED_BATCH\fP policy is Linux specific.
|
||||
.SH NOTES
|
||||
POSIX.1 does not detail the permissions that an unprivileged
|
||||
process requires in order to call
|
||||
|
|
Loading…
Reference in New Issue