[rtems commit] doc: Add SMP glossary
Joel Sherrill
joel.sherrill at OARcorp.com
Mon May 5 14:11:45 UTC 2014
A significant portion of this is not SMP specific.
Placing it in the SMP chapter implies that it is.
On 5/5/2014 2:36 AM, Sebastian Huber wrote:
> Module: rtems
> Branch: master
> Commit: d20b029af9b09bedb637f05770aa1497d79bbf08
> Changeset: http://git.rtems.org/rtems/commit/?id=d20b029af9b09bedb637f05770aa1497d79bbf08
>
> Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
> Date: Wed Apr 16 20:54:48 2014 +0200
>
> doc: Add SMP glossary
>
> ---
>
> doc/user/smp.t | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 110 insertions(+), 0 deletions(-)
>
> diff --git a/doc/user/smp.t b/doc/user/smp.t
> index 3d9cc29..d0e067f 100644
> --- a/doc/user/smp.t
> +++ b/doc/user/smp.t
> @@ -29,6 +29,116 @@ The application level services currently provided are:
> @c
> @section Background
>
> + at subsection Glossary
> +
> + at table @dfn
> +
> + at item scheduler
> +
> +A @dfn{scheduler} or @dfn{scheduling algorithm} allocates processors to a
> +subset of its set of ready tasks. So it manages access to the processor
> +resource. Various algorithms exist to choose the tasks allowed to use a
> +processor out of the set of ready tasks. One method is to assign each task a
> +priority number and assign the tasks with the lowest priority number to one
> +processor of the set of processors owned by a scheduler instance.
> +
> + at item scheduler instance
> +
> +A @dfn{scheduler instance} is a scheduling algorithm with a corresponding
> +context to store its internal state. Each processor in the system is owned by
> +at most one scheduler instance. The processor to scheduler instance assignment
> +is determined at application configuration time. @xref{Configuring a System
> +Configuring Clustered/Partitioned Schedulers}.
> +
> + at item cluster
> +
> +We have clustered scheduling in case the set of processors of a system is
> +partitioned into non-empty pairwise disjoint subsets. These subsets are called
> + at dfn{clusters}. Each cluster is owned by exactly one scheduler instance.
> +
> + at item partition
> +
> +Clusters with a cardinality of one are @dfn{partitions}.
> +
> + at item task
> +
> +A @dfn{task} or @dfn{thread} is a context which can execute on a processor. It
> +consists normally of a set of registers and a stack. The terms @dfn{task} and
> + at dfn{thread} are synonym in RTEMS
> +
> + at item task processor affinity
> +
> +The set of processors on which a task is allowed to execute.
> +
> + at item task migration
> +
> + at dfn{Task migration} happens in case a task stops execution on one processor
> +and resumes execution on another processor.
> +
> + at item blocked task
> +
> +A task is @dfn{blocked} if it is not allowed to execute. There are several
> +reasons why a task is blocked, for example
> +
> + at itemize @bullet
> +
> + at item it has to wait for a resource, currently owned by another task,
> +
> + at item some time must elapse, for example the next period start or some time
> +out,
> +
> + at item it is explicitly suspended, or
> +
> + at item it is not yet started.
> +
> + at end itemize
> +
> +Blocked tasks are not an element of the set of ready tasks of a scheduler
> +instance.
> +
> + at item ready task
> +
> +A task is @dfn{ready} if it is allowed to execute, but has no processor
> +assigned. The scheduler decided that other tasks are currently more important.
> +
> + at item scheduled task
> +
> +A task is @dfn{scheduled} if it is allowed to execute and has a processor
> +assigned. Such a task executes currently on a processor or is about to start
> +execution. A task about to start execution it is an heir task on exactly one
> +processor in the system.
> +
> + at item in the air task
> +
> +A task is @dfn{in the air} if it is in a transient state and has a processor
> +assigned. The next scheduler operation will turn it into a blocked, ready or
> +scheduled task.
> +
> + at item atomic operations
> +
> +Atomic operations are defined in terms of @cite{ISO/IEC 9899:2011}.
> +
> + at item SMP locks
> +
> +The @dfn{SMP locks} ensure mutual exclusion on the lowest level and are a
> +replacement for the sections of disabled interrupts. Interrupts are usually
> +disabled while holding an SMP lock. They are implemented using atomic
> +operations. Currently a ticket lock is used in RTEMS.
> +
> + at item SMP barriers
> +
> +The @dfn{SMP locks} ensure that a set of processors reaches a common
> +synchronization point in time. They are implemented using atomic operations.
> +Currently a sense barrier is used in RTEMS.
> +
> + at item Giant lock
> +
> +The @dfn{Giant lock} is a recursive SMP lock protecting most parts of the
> +operating system state. Virtually every operating system service must acquire
> +and release the Giant lock during its operation.
> +
> + at end table
> +
> @subsection Uniprocessor versus SMP Parallelism
>
> Uniprocessor systems have long been used in embedded systems. In this hardware
>
> _______________________________________________
> rtems-vc mailing list
> rtems-vc at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-vc
--
Joel Sherrill, Ph.D. Director of Research & Development
joel.sherrill at OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the devel
mailing list