summaryrefslogtreecommitdiffstats
path: root/c-user/scheduling_concepts.rst
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-10-20 19:30:42 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-10-26 19:11:45 +0200
commit955d36640fbe939c430540e0ed52ef59c04ceac0 (patch)
treeeac950eb1ba7f724686b50e6abe953999b222717 /c-user/scheduling_concepts.rst
parentAdd a README file containing the colours used in the RTEMS logo. (diff)
downloadrtems-docs-955d36640fbe939c430540e0ed52ef59c04ceac0.tar.bz2
c-user: Clarify scheduler configuration
Diffstat (limited to 'c-user/scheduling_concepts.rst')
-rw-r--r--c-user/scheduling_concepts.rst35
1 files changed, 21 insertions, 14 deletions
diff --git a/c-user/scheduling_concepts.rst b/c-user/scheduling_concepts.rst
index 239e0c3..e088c62 100644
--- a/c-user/scheduling_concepts.rst
+++ b/c-user/scheduling_concepts.rst
@@ -239,20 +239,27 @@ allowed to run.
Earliest Deadline First SMP Scheduler
-------------------------------------
-A job-level fixed-priority scheduler using the Earliest Deadline First (EDF)
-method. By convention, the maximum priority level is
-:math:`min(INT\_MAX, 2^{62} - 1)` for background tasks. The tasks with an
-active deadline have a higher priority than the background tasks. This
-scheduler supports task processor affinities of one-to-one and one-to-all, e.g.
-a task can execute on exactly one processor or all processors managed by the
-scheduler instance. This is the default scheduler in SMP configurations if
-more than one processor is configured. The processor affinity set of a task
-must contain all online processors to select the one-to-all affinity. This is
-to avoid pathological cases if processors are added/removed to/from the
-scheduler instance at run-time. In case the processor affinity set contains
-not all online processors, then a one-to-one affinity will be used selecting
-the processor with the largest index within the set of processors currently
-owned by the scheduler instance.
+This is a job-level fixed-priority scheduler using the Earliest Deadline First
+(EDF) method. By convention, the maximum priority level is
+:math:`min(INT\_MAX, 2^{62} - 1)` for background tasks. Tasks without an
+active deadline are background tasks. In case deadlines are not used, then the
+EDF scheduler behaves exactly like a fixed-priority scheduler. The tasks with
+an active deadline have a higher priority than the background tasks. This
+scheduler supports :ref:`task processor affinities <rtems_task_set_affinity>`
+of one-to-one and one-to-all, e.g. a task can execute on exactly one processor
+or all processors managed by the scheduler instance. The processor affinity
+set of a task must contain all online processors to select the one-to-all
+affinity. This is to avoid pathological cases if processors are added/removed
+to/from the scheduler instance at run-time. In case the processor affinity set
+contains not all online processors, then a one-to-one affinity will be used
+selecting the processor with the largest index within the set of processors
+currently owned by the scheduler instance. This scheduler algorithm supports
+:ref:`thread pinning <ThreadPinning>`. The ready queues use a red-black tree
+with the task priority as the key.
+
+This scheduler algorithm is the default scheduler in SMP configurations if more
+than one processor is configured (:ref:`CONFIGURE_MAXIMUM_PROCESSORS
+<CONFIGURE_MAXIMUM_PROCESSORS>`).
.. _SchedulerSMPPriority: