summaryrefslogtreecommitdiffstats
path: root/c-user/scheduling-concepts
diff options
context:
space:
mode:
Diffstat (limited to 'c-user/scheduling-concepts')
-rw-r--r--c-user/scheduling-concepts/background.rst13
-rw-r--r--c-user/scheduling-concepts/directives.rst62
-rw-r--r--c-user/scheduling-concepts/index.rst2
-rw-r--r--c-user/scheduling-concepts/introduction.rst2
-rw-r--r--c-user/scheduling-concepts/smp-schedulers.rst9
5 files changed, 44 insertions, 44 deletions
diff --git a/c-user/scheduling-concepts/background.rst b/c-user/scheduling-concepts/background.rst
index 7f8a63d..38b77ee 100644
--- a/c-user/scheduling-concepts/background.rst
+++ b/c-user/scheduling-concepts/background.rst
@@ -117,10 +117,7 @@ Task Priority and Scheduling
The most significant task scheduling modification mechanism is the ability for
the user to assign a priority level to each individual task when it is created
-and to alter a task's priority at run-time. The maximum priority level depends
-on the configured scheduler. A lower priority level means higher priority
-(higher importance). The maximum priority level of the default uniprocessor
-scheduler is 255.
+and to alter a task's priority at run-time, see :ref:`TaskPriority`.
.. index:: preemption
@@ -163,7 +160,7 @@ Manual Round-Robin
The final mechanism for altering the RTEMS scheduling algorithm is called
manual round-robin. Manual round-robin is invoked by using
-the ``rtems_task_wake_after`` directive with a time interval of
+the ``rtems_task_wake_after`` directive with a ``ticks`` parameter of
``RTEMS_YIELD_PROCESSOR``. This allows a task to give up the processor and be
immediately returned to the ready chain at the end of its priority group. If
no other tasks of the same priority are ready to run, then the task does not
@@ -246,7 +243,7 @@ of the following conditions:
option and the requested semaphore is unavailable.
- The running task issues a ``rtems_task_wake_after`` directive which blocks
- the task for the given time interval. If the time interval specified is
+ the task for the given count of ticks. If the count of ticks specified is
zero, the task yields the processor and remains in the ready state.
- The running task issues a ``rtems_task_wake_when`` directive which blocks the
@@ -283,8 +280,8 @@ conditions:
- A running task issues a ``rtems_semaphore_release`` directive which releases
the semaphore on which the blocked task is waiting.
-- A timeout interval expires for a task which was blocked by a call to the
- ``rtems_task_wake_after`` directive.
+- The requested count of ticks has elapsed for a task which was blocked by a
+ call to the ``rtems_task_wake_after`` directive.
- A timeout period expires for a task which blocked by a call to the
``rtems_task_wake_when`` directive.
diff --git a/c-user/scheduling-concepts/directives.rst b/c-user/scheduling-concepts/directives.rst
index 4785457..115b4fa 100644
--- a/c-user/scheduling-concepts/directives.rst
+++ b/c-user/scheduling-concepts/directives.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2013, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2013, 2021 embedded brains GmbH & Co. KG
.. Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
.. This file is part of the RTEMS quality process and was automatically
@@ -54,9 +54,9 @@ Identifies a scheduler by the object name.
This parameter is the scheduler name to look up.
``id``
- This parameter is the pointer to an object identifier variable. When the
- directive call is successful, the identifier of the scheduler will be
- stored in this variable.
+ This parameter is the pointer to an :ref:`InterfaceRtemsId` object. When
+ the directive call is successful, the identifier of the scheduler will be
+ stored in this object.
.. rubric:: DESCRIPTION:
@@ -120,9 +120,9 @@ Identifies a scheduler by the processor index.
This parameter is the processor index to identify the scheduler.
``id``
- This parameter is the pointer to an object identifier variable. When the
- directive call is successful, the identifier of the scheduler will be
- stored in this variable.
+ This parameter is the pointer to an :ref:`InterfaceRtemsId` object. When
+ the directive call is successful, the identifier of the scheduler will be
+ stored in this object.
.. rubric:: RETURN VALUES:
@@ -176,17 +176,17 @@ Identifies a scheduler by the processor set.
.. rubric:: PARAMETERS:
``cpusetsize``
- This parameter is the size of the referenced processor set variable in
- bytes. This value shall be positive.
+ This parameter is the size of the processor set referenced by ``cpuset`` in
+ bytes. The size shall be positive.
``cpuset``
- This parameter is the pointer to a processor set variable. The referenced
+ This parameter is the pointer to a :c:type:`cpu_set_t`. The referenced
processor set will be used to identify the scheduler.
``id``
- This parameter is the pointer to an object identifier variable. When the
- directive call is successful, the identifier of the scheduler will be
- stored in this variable.
+ This parameter is the pointer to an :ref:`InterfaceRtemsId` object. When
+ the directive call is successful, the identifier of the scheduler will be
+ stored in this object.
.. rubric:: DESCRIPTION:
@@ -254,9 +254,9 @@ Gets the maximum task priority of the scheduler.
This parameter is the scheduler identifier.
``priority``
- This parameter is the pointer to a task priority variable. The maximum
- priority of the scheduler will be stored in this variable, if the operation
- is successful.
+ This parameter is the pointer to an :ref:`InterfaceRtemsTaskPriority`
+ object. When the directive the maximum priority of the scheduler will be
+ stored in this object.
.. rubric:: RETURN VALUES:
@@ -313,10 +313,9 @@ Maps a Classic API task priority to the corresponding POSIX thread priority.
This parameter is the Classic API task priority to map.
``posix_priority``
- This parameter is the pointer to a POSIX thread priority variable. When
- the directive call is successful, the POSIX thread priority value
- corresponding to the specified Classic API task priority value will be
- stored in this variable.
+ This parameter is the pointer to an ``int`` object. When the directive
+ call is successful, the POSIX thread priority value corresponding to the
+ specified Classic API task priority value will be stored in this object.
.. rubric:: RETURN VALUES:
@@ -376,10 +375,10 @@ Maps a POSIX thread priority to the corresponding Classic API task priority.
This parameter is the POSIX thread priority to map.
``priority``
- This parameter is the pointer to a Classic API task priority variable.
- When the directive call is successful, the Classic API task priority value
- corresponding to the specified POSIX thread priority value will be stored
- in this variable.
+ This parameter is the pointer to an :ref:`InterfaceRtemsTaskPriority`
+ object. When the directive call is successful, the Classic API task
+ priority value corresponding to the specified POSIX thread priority value
+ will be stored in this object.
.. rubric:: RETURN VALUES:
@@ -532,13 +531,13 @@ Gets the set of processors owned by the scheduler.
This parameter is the scheduler identifier.
``cpusetsize``
- This parameter is the size of the referenced processor set variable in
+ This parameter is the size of the processor set referenced by ``cpuset`` in
bytes.
``cpuset``
- This parameter is the pointer to a processor set variable. When the
+ This parameter is the pointer to a :c:type:`cpu_set_t` object. When the
directive call is successful, the processor set of the scheduler will be
- stored in this variable. A set bit in the processor set means that the
+ stored in this object. A set bit in the processor set means that the
corresponding processor is owned by the scheduler, otherwise the bit is
cleared.
@@ -684,9 +683,12 @@ scheduler specified by ``scheduler_id``.
The processor was not owned by the scheduler.
:c:macro:`RTEMS_RESOURCE_IN_USE`
- The set of processors owned by the scheduler would have been empty after
- the processor removal and there was at least one non-idle task that used
- this scheduler as its :term:`home scheduler`.
+ The processor was required by at least one non-idle task that used the
+ scheduler as its :term:`home scheduler`.
+
+:c:macro:`RTEMS_RESOURCE_IN_USE`
+ The processor was the last processor owned by the scheduler and there was
+ at least one task that used the scheduler as a :term:`helping scheduler`.
.. rubric:: NOTES:
diff --git a/c-user/scheduling-concepts/index.rst b/c-user/scheduling-concepts/index.rst
index 6b16f1b..ee9aa26 100644
--- a/c-user/scheduling-concepts/index.rst
+++ b/c-user/scheduling-concepts/index.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2020 embedded brains GmbH & Co. KG
.. index:: scheduling
.. index:: task scheduling
diff --git a/c-user/scheduling-concepts/introduction.rst b/c-user/scheduling-concepts/introduction.rst
index 31de1c1..527d103 100644
--- a/c-user/scheduling-concepts/introduction.rst
+++ b/c-user/scheduling-concepts/introduction.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2013, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2013, 2021 embedded brains GmbH & Co. KG
.. Copyright (C) 1988, 2017 On-Line Applications Research Corporation (OAR)
.. This file is part of the RTEMS quality process and was automatically
diff --git a/c-user/scheduling-concepts/smp-schedulers.rst b/c-user/scheduling-concepts/smp-schedulers.rst
index cfab04f..d6c1dc6 100644
--- a/c-user/scheduling-concepts/smp-schedulers.rst
+++ b/c-user/scheduling-concepts/smp-schedulers.rst
@@ -45,7 +45,7 @@ Deterministic Priority SMP Scheduler
A fixed-priority scheduler which uses a table of chains with one chain per
priority level for the ready tasks. The maximum priority level is
configurable. By default, the maximum priority level is 255 (256 priority
-levels).
+levels), see :ref:`CONFIGURE_MAXIMUM_PRIORITY`.
.. _SchedulerSMPPrioritySimple:
@@ -64,6 +64,7 @@ Arbitrary Processor Affinity Priority SMP Scheduler
A fixed-priority scheduler which uses a table of chains with one chain per
priority level for the ready tasks. The maximum priority level is
configurable. By default, the maximum priority level is 255 (256 priority
-levels). This scheduler supports arbitrary task processor affinities. The
-worst-case run-time complexity of some scheduler operations exceeds
-:math:`O(n)` while :math:`n` is the count of ready tasks.
+levels), see :ref:`CONFIGURE_MAXIMUM_PRIORITY`. This scheduler supports
+arbitrary task processor affinities. The worst-case run-time complexity of
+some scheduler operations exceeds :math:`O(n)` while :math:`n` is the count of
+ready tasks.