From ae68ff085724dd35d60151bd153e80b8b0776873 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 27 May 1997 12:40:11 +0000 Subject: Initial revision --- doc/posix_users/sched.texi | 226 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 doc/posix_users/sched.texi (limited to 'doc/posix_users/sched.texi') diff --git a/doc/posix_users/sched.texi b/doc/posix_users/sched.texi new file mode 100644 index 0000000000..f8211b51a7 --- /dev/null +++ b/doc/posix_users/sched.texi @@ -0,0 +1,226 @@ +@c +@c COPYRIGHT (c) 1996. +@c On-Line Applications Research Corporation (OAR). +@c All rights reserved. +@c + +@ifinfo +@node Scheduler Manager, Scheduler Manager Introduction, time, Top +@end ifinfo +@chapter Scheduler Manager +@ifinfo +@menu +* Scheduler Manager Introduction:: +* Scheduler Manager Background:: +* Scheduler Manager Operations:: +* Scheduler Manager Directives:: +@end menu +@end ifinfo + +@ifinfo +@node Scheduler Manager Introduction, Scheduler Manager Background, Scheduler Manager, Scheduler Manager +@end ifinfo +@section Introduction + +The scheduler manager ... + +The directives provided by the scheduler manager are: + +@itemize @bullet +@item @code{sched_get_priority_min} - +@item @code{sched_get_priority_max} - +@item @code{sched_rr_get_interval} - +@item @code{sched_yield} - +@end itemize + +@ifinfo +@node Scheduler Manager Background, Priority, Scheduler Manager Introduction, Scheduler Manager +@end ifinfo +@section Background +@ifinfo +@menu +* Priority:: +* Scheduling Policies:: +@end menu +@end ifinfo + +@ifinfo +@node Priority, Scheduling Policies, Scheduler Manager Background, Scheduler Manager Background +@end ifinfo +@subsection Priority + +In the RTEMS implementation of the POSIX API, the priorities range from +the low priority of sched_get_priority_min() to the highest priority of +sched_get_priority_max(). Numerically higher values represent higher +priorities. + +@ifinfo +@node Scheduling Policies, Scheduler Manager Operations, Priority, Scheduler Manager Background +@end ifinfo +@subsection Scheduling Policies + +The following scheduling policies are available: + +@table @b +@item SCHED_FIFO +Priority-based, preemptive scheduling with no timeslicing. This is equivalent +to what is called "manual round-robin" scheduling. + +@item SCHED_RR +Priority-based, preemptive scheduling with timeslicing. Time quantums are +maintained on a per-thread basis and are not reset at each context switch. +Thus, a thread which is preempted and subsequently resumes execution will +attempt to complete the unused portion of its time quantum. + +@item SCHED_OTHER +Priority-based, preemptive scheduling with timeslicing. Time quantums are +maintained on a per-thread basis and are reset at each context switch. + +@item SCHED_SPORADIC +Priority-based, preemptive scheduling utilizing three additional parameters: +budget, replenishment period, and low priority. Under this policy, the +thread is allowed to execute for "budget" amount of time before its priority +is lowered to "low priority". At the end of each replenishment period, +the thread resumes its initial priority and has its budget replenished. + +@end table + +@ifinfo +@node Scheduler Manager Operations, Scheduler Manager Directives, Scheduling Policies, Scheduler Manager +@end ifinfo +@section Operations + +@ifinfo +@node Scheduler Manager Directives, sched_get_priority_min, Scheduler Manager Operations, Scheduler Manager +@end ifinfo +@section Directives +@ifinfo +@menu +* sched_get_priority_min:: +* sched_get_priority_max:: +* sched_rr_get_interval:: +* sched_yield:: +@end menu +@end ifinfo + +This section details the scheduler manager's directives. +A subsection is dedicated to each of this manager's directives +and describes the calling sequence, related constants, usage, +and status codes. + +@page +@ifinfo +@node sched_get_priority_min, sched_get_priority_max, Scheduler Manager Directives, Scheduler Manager Directives +@end ifinfo +@subsection sched_get_priority_min + +@subheading CALLING SEQUENCE: + +@example +#include + +int sched_get_priority_min( + int policy +); +@end example + +@subheading STATUS CODES: + +On error, this routine returns -1 and sets errno to one of the following: + +@table @b +@item EINVAL +The indicated policy is invalid. + +@end table + +@subheading DESCRIPTION: + +@subheading NOTES: + +@page +@ifinfo +@node sched_get_priority_max, sched_rr_get_interval, sched_get_priority_min, Scheduler Manager Directives +@end ifinfo +@subsection sched_get_priority_max + +@subheading CALLING SEQUENCE: + +@example +#include + +int sched_get_priority_max( + int policy +); +@end example + +@subheading STATUS CODES: + +On error, this routine returns -1 and sets errno to one of the following: + +@table @b +@item EINVAL +The indicated policy is invalid. + +@end table + +@subheading DESCRIPTION: + +@subheading NOTES: + +@page +@ifinfo +@node sched_rr_get_interval, sched_yield, sched_get_priority_max, Scheduler Manager Directives +@end ifinfo +@subsection sched_rr_get_interval + +@subheading CALLING SEQUENCE: + +@example +#include + +int sched_rr_get_interval( + pid_t pid, + struct timespec *interval +); +@end example + +@subheading STATUS CODES: + +On error, this routine returns -1 and sets errno to one of the following: + +@table @b +@item ESRCH +The indicated process id is invalid. + +@item EINVAL +The specified interval pointer parameter is invalid. + +@end table + +@subheading DESCRIPTION: + +@subheading NOTES: + +@page +@ifinfo +@node sched_yield, Command and Variable Index, sched_rr_get_interval, Scheduler Manager Directives +@end ifinfo +@subsection sched_yield + +@subheading CALLING SEQUENCE: + +@example +#include + +int sched_yield( void ); +@end example + +@subheading STATUS CODES: + +This routine always returns zero to indicate success. + +@subheading DESCRIPTION: + +@subheading NOTES: + -- cgit v1.2.3