From 29e6637eb1802da89de25778f597bdf0d66a3867 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 5 May 2014 21:55:13 +0200 Subject: doc: Move SMP glossary to global glossary Add some terms. --- doc/user/glossary.texi | 109 +++++++++++++++++++++++++++++++++++++++++------- doc/user/smp.t | 110 ------------------------------------------------- 2 files changed, 93 insertions(+), 126 deletions(-) (limited to 'doc') diff --git a/doc/user/glossary.texi b/doc/user/glossary.texi index 2a627dd524..7f3a36d150 100644 --- a/doc/user/glossary.texi +++ b/doc/user/glossary.texi @@ -32,6 +32,9 @@ interrupt except that it is associated with a task and is run in the context of a task. The directives provided by the signal manager are used to service signals. +@item atomic operations +Atomic operations are defined in terms of @cite{ISO/IEC 9899:2011}. + @item awakened A term used to describe a task that has been unblocked and may be scheduled to the CPU. @@ -49,10 +52,10 @@ makes for compact data representation. @item block A physically contiguous area of memory. -@item blocked -The task state entered by a task which has -been previously started and cannot continue execution until the -reason for waiting has been satisfied. +@item blocked task +The task state entered by a task which has been previously started and cannot +continue execution until the reason for waiting has been satisfied. Blocked +tasks are not an element of the set of ready tasks of a scheduler instance. @item broadcast To simultaneously send a message to a @@ -86,6 +89,11 @@ A data structure which allows for efficient dynamic addition and removal of elements. It differs from an array in that it is not limited to a predefined size. +@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 +@dfn{clusters}. Each cluster is owned by exactly one scheduler instance. + @item coalesce The process of merging adjacent holes into a single larger hole. Sometimes this process is referred to as @@ -185,9 +193,11 @@ are used to service events. @item exception A synonym for interrupt. -@item executing -The task state entered by a task after it -has been given control of the CPU. +@item executing task +The task state entered by a task after it has been given control of the +processor. On SMP configurations a task may be registered as executing on more +than one processor for short time frames during task migration. Blocked tasks +can be executing until they issue a thread dispatch. @item executive In this document, this term is used to @@ -220,6 +230,11 @@ extension of the primary processor. A resource that has been released by the application to RTEMS. +@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. + @item global An object that has been created with the GLOBAL attribute and exported to all nodes in a multiprocessor @@ -242,6 +257,13 @@ system. A data structure used to dynamically allocate and deallocate variable sized blocks of memory. +@item heir task +A task is an @dfn{heir} if it is registered as an heir in a processor of the +system. A task can be the heir on at most one processor in the system. In +case the executing and heir tasks differ on a processor and a thread dispatch +is marked as necessary, then the next thread dispatch will make the heir task +the executing task. + @item heterogeneous A multiprocessor computer system composed of dissimilar processors. @@ -256,6 +278,11 @@ access an active object. A special low priority task which assumes control of the CPU when no other task is able to execute. +@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. This state is specific to SMP configurations. + @item interface A specification of the methodology used to connect multiple independent subsystems. @@ -436,6 +463,9 @@ An RTEMS object which is used to allocate and deallocate fixed size blocks of memory from an dynamically specified area of memory. +@item partition +Clusters with a cardinality of one are @dfn{partitions}. + @item Partition Control Block A data structure associated with each partition used by RTEMS to manage that partition. @@ -522,9 +552,11 @@ Alternate term for message queue. @item QCB An acronym for Message Queue Control Block. -@item ready -A task occupies this state when it is -available to be given control of the CPU. +@item ready task +A task occupies this state when it is available to be given control of a +processor. A ready task has no processor assigned. The scheduler decided that +other tasks are currently more important. A task that is ready to execute and +has a processor assigned is called scheduled. @item real-time A term used to describe systems which are @@ -592,15 +624,36 @@ The state of a rate monotonic timer while it is being used to delineate a period. The timer exits this state by either expiring or being canceled. -@item schedule -The process of choosing which task should -next enter the executing state. - @item schedulable A set of tasks which can be guaranteed to meet their deadlines based upon a specific scheduling algorithm. +@item schedule +The process of choosing which task should +next enter the executing state. + +@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. + +@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. + +@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}. + @item segments Variable sized memory blocks allocated from a region. @@ -631,6 +684,18 @@ sent to a task. @item SMCB An acronym for Semaphore Control Block. +@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. + +@item SMP barriers +The @dfn{SMP barriers} ensure that a defined set of independent threads of +execution on 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. + @item soft real-time system A real-time system in which a missed deadline does not compromise the integrity of the system. @@ -669,13 +734,21 @@ The system on which the application will ultimately execute. @item task -A logically complete thread of execution. The -CPU is allocated among the ready tasks. +A logically complete thread of execution. It consists normally of a set of +registers and a stack. The terms @dfn{task} and @dfn{thread} are synonym in +RTEMS. The scheduler assigns processors to a subset of the ready tasks. @item Task Control Block A data structure associated with each task used by RTEMS to manage that task. +@item task migration +@dfn{Task migration} happens in case a task stops execution on one processor +and resumes execution on another processor. + +@item task processor affinity +The set of processors on which a task is allowed to execute. + @item task switch Alternate terminology for context switch. Taking control of the processor from one task and given @@ -684,6 +757,10 @@ to another. @item TCB An acronym for Task Control Block. +@item thread dispatch +The @dfn{thread dispatch} transfers control of the processor from the currently +executing thread to the heir thread of the processor. + @item tick The basic unit of time used by RTEMS. It is a user-configurable number of microseconds. The current tick diff --git a/doc/user/smp.t b/doc/user/smp.t index 0751abae44..1844315017 100644 --- a/doc/user/smp.t +++ b/doc/user/smp.t @@ -29,116 +29,6 @@ The application level services currently provided are: @c @section Background -@subsection Glossary - -@table @dfn - -@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. - -@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}. - -@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 -@dfn{clusters}. Each cluster is owned by exactly one scheduler instance. - -@item partition - -Clusters with a cardinality of one are @dfn{partitions}. - -@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 -@dfn{thread} are synonym in RTEMS - -@item task processor affinity - -The set of processors on which a task is allowed to execute. - -@item task migration - -@dfn{Task migration} happens in case a task stops execution on one processor -and resumes execution on another processor. - -@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 - -@itemize @bullet - -@item it has to wait for a resource, currently owned by another task, - -@item some time must elapse, for example the next period start or some time -out, - -@item it is explicitly suspended, or - -@item it is not yet started. - -@end itemize - -Blocked tasks are not an element of the set of ready tasks of a scheduler -instance. - -@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. - -@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. - -@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. - -@item atomic operations - -Atomic operations are defined in terms of @cite{ISO/IEC 9899:2011}. - -@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. - -@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. - -@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. - -@end table - @subsection Uniprocessor versus SMP Parallelism Uniprocessor systems have long been used in embedded systems. In this hardware -- cgit v1.2.3