diff options
Diffstat (limited to 'posix_users/scheduler.rst')
-rw-r--r-- | posix_users/scheduler.rst | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/posix_users/scheduler.rst b/posix_users/scheduler.rst deleted file mode 100644 index 9209391..0000000 --- a/posix_users/scheduler.rst +++ /dev/null @@ -1,209 +0,0 @@ -.. comment SPDX-License-Identifier: CC-BY-SA-4.0 - -.. COMMENT: COPYRIGHT (c) 1988-2002. -.. COMMENT: On-Line Applications Research Corporation (OAR). -.. COMMENT: All rights reserved. - -Scheduler Manager -################# - -Introduction -============ - -The scheduler manager ... - -The directives provided by the scheduler manager are: - -- sched_get_priority_min_ - Get Minimum Priority Value - -- sched_get_priority_max_ - Get Maximum Priority Value - -- sched_rr_get_interval_ - Get Timeslicing Quantum - -- sched_yield_ - Yield the Processor - -Background -========== - -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. - -Scheduling Policies -------------------- - -The following scheduling policies are available: - -*SCHED_FIFO* - Priority-based, preemptive scheduling with no timeslicing. This is - equivalent to what is called "manual round-robin" scheduling. - -*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. - -*SCHED_OTHER* - Priority-based, preemptive scheduling with timeslicing. Time quantums are - maintained on a per-thread basis and are reset at each context switch. - -*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. - -Operations -========== - -There is currently no text in this section. - -Directives -========== - -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. - -.. _sched_get_priority_min: - -sched_get_priority_min - Get Minimum Priority Value ---------------------------------------------------- -.. index:: sched_get_priority_min -.. index:: get minimum priority value - -**CALLING SEQUENCE:** - -.. code-block:: c - - #include <sched.h> - int sched_get_priority_min( - int policy - ); - -**STATUS CODES:** - -On error, this routine returns -1 and sets ``errno`` to one of the following: - -.. list-table:: - :class: rtems-table - - * - ``EINVAL`` - - The indicated policy is invalid. - -**DESCRIPTION:** - -This routine return the minimum (numerically and logically lowest) priority for -the specified ``policy``. - -**NOTES:** - -NONE - -.. _sched_get_priority_max: - -sched_get_priority_max - Get Maximum Priority Value ---------------------------------------------------- -.. index:: sched_get_priority_max -.. index:: get maximum priority value - -**CALLING SEQUENCE:** - -.. code-block:: c - - #include <sched.h> - int sched_get_priority_max( - int policy - ); - -**STATUS CODES:** - -On error, this routine returns -1 and sets ``errno`` to one of the following: - -.. list-table:: - :class: rtems-table - - * - ``EINVAL`` - - The indicated policy is invalid. - -**DESCRIPTION:** - -This routine return the maximum (numerically and logically highest) priority -for the specified ``policy``. - -**NOTES:** - -NONE - -.. _sched_rr_get_interval: - -sched_rr_get_interval - Get Timeslicing Quantum ------------------------------------------------ -.. index:: sched_rr_get_interval -.. index:: get timeslicing quantum - -**CALLING SEQUENCE:** - -.. code-block:: c - - #include <sched.h> - int sched_rr_get_interval( - pid_t pid, - struct timespec *interval - ); - -**STATUS CODES:** - -On error, this routine returns -1 and sets ``errno`` to one of the following: - -.. list-table:: - :class: rtems-table - - * - ``ESRCH`` - - The indicated process id is invalid. - * - ``EINVAL`` - - The specified interval pointer parameter is invalid. - -**DESCRIPTION:** - -This routine returns the length of the timeslice quantum in the ``interval`` -parameter for the specified ``pid``. - -**NOTES:** - -The ``pid`` argument should be 0 to indicate the calling process. - -.. _sched_yield: - -sched_yield - Yield the Processor ---------------------------------- -.. index:: sched_yield -.. index:: yield the processor - -**CALLING SEQUENCE:** - -.. code-block:: c - - #include <sched.h> - int sched_yield( void ); - -**STATUS CODES:** - -This routine always returns zero to indicate success. - -**DESCRIPTION:** - -This call forces the calling thread to yield the processor to another -thread. Normally this is used to implement voluntary round-robin task -scheduling. - -**NOTES:** - -NONE |