summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-02-02 11:22:59 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-02-02 11:22:59 +0100
commit3e005fed9a075227058a8c80ce43e26522b573e6 (patch)
tree83b3c5812cdc495dd547825034cdb47bf2bd5f1d
parent2e0a2a06a1808551d09c734f3cf9be5d17f2283f (diff)
downloadrtems-docs-3e005fed9a075227058a8c80ce43e26522b573e6.tar.bz2
c-user: Use sphinx glossary support
Terms can be referenced via :term:`XYZ`.
-rw-r--r--c-user/glossary.rst1304
-rw-r--r--c-user/key_concepts.rst12
2 files changed, 658 insertions, 658 deletions
diff --git a/c-user/glossary.rst b/c-user/glossary.rst
index 44f8f88..f3e784e 100644
--- a/c-user/glossary.rst
+++ b/c-user/glossary.rst
@@ -3,756 +3,756 @@
Glossary
********
-:dfn:`active`
- A term used to describe an object which has been created by an application.
+.. glossary::
+ :sorted:
-:dfn:`aperiodic task`
- A task which must execute only at irregular intervals and has only a soft
- deadline.
+ active
+ A term used to describe an object which has been created by an
+ application.
-:dfn:`application`
- In this document, software which makes use of RTEMS.
+ aperiodic task
+ A task which must execute only at irregular intervals and has only a soft
+ deadline.
-:dfn:`ASR`
- see Asynchronous Signal Routine.
+ application
+ In this document, software which makes use of RTEMS.
-:dfn:`asynchronous`
- Not related in order or timing to other occurrences in the system.
+ ASR
+ see Asynchronous Signal Routine.
-:dfn:`Asynchronous Signal Routine`
- Similar to a hardware 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.
+ asynchronous
+ Not related in order or timing to other occurrences in the system.
-:dfn:`atomic operations`
- Atomic operations are defined in terms of :ref:`C11 <C11>`.
+ Asynchronous Signal Routine
+ Similar to a hardware 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.
-:dfn:`awakened`
- A term used to describe a task that has been unblocked and may be scheduled
- to the CPU.
+ atomic operations
+ Atomic operations are defined in terms of :term:`C11`.
-:dfn:`big endian`
- A data representation scheme in which the bytes composing a numeric value
- are arranged such that the most significant byte is at the lowest address.
+ awakened
+ A term used to describe a task that has been unblocked and may be
+ scheduled to the CPU.
-:dfn:`bit-mapped`
- A data encoding scheme in which each bit in a variable is used to represent
- something different. This makes for compact data representation.
+ big endian
+ A data representation scheme in which the bytes composing a numeric value
+ are arranged such that the most significant byte is at the lowest
+ address.
-:dfn:`block`
- A physically contiguous area of memory.
+ bit-mapped
+ A data encoding scheme in which each bit in a variable is used to
+ represent something different. This makes for compact data
+ representation.
-:dfn:`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.
+ block
+ A physically contiguous area of memory.
-:dfn:`broadcast`
- To simultaneously send a message to a logical set of destinations.
+ 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.
-:dfn:`BSP`
- see Board Support Package.
+ broadcast
+ To simultaneously send a message to a logical set of destinations.
-:dfn:`Board Support Package`
- A collection of device initialization and control routines specific to a
- particular type of board or collection of boards.
+ BSP
+ see Board Support Package.
-:dfn:`buffer`
- A fixed length block of memory allocated from a partition.
+ Board Support Package
+ A collection of device initialization and control routines specific to a
+ particular type of board or collection of boards.
-.. _C11:
+ buffer
+ A fixed length block of memory allocated from a partition.
-:dfn:`C11`
- The standard ISO/IEC 9899:2011.
+ C11
+ The standard ISO/IEC 9899:2011.
-.. _C++11:
+ C++11
+ The standard ISO/IEC 14882:2011.
-:dfn:`C++11`
- The standard ISO/IEC 14882:2011.
+ calling convention
+ The processor and compiler dependent rules which define the mechanism
+ used to invoke subroutines in a high-level language. These rules define
+ the passing of arguments, the call and return mechanism, and the register
+ set which must be preserved.
-:dfn:`calling convention`
- The processor and compiler dependent rules which define the mechanism used
- to invoke subroutines in a high-level language. These rules define the
- passing of arguments, the call and return mechanism, and the register set
- which must be preserved.
+ Central Processing Unit
+ This term is equivalent to the terms processor and microprocessor.
-:dfn:`Central Processing Unit`
- This term is equivalent to the terms processor and microprocessor.
+ chain
+ 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.
-:dfn:`chain`
- 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.
+ 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
+ calledclusters. Clusters with a cardinality of one are partitions. Each
+ cluster is owned by exactly one scheduler instance.
-:dfn:`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`. Clusters with a cardinality of one are partitions.
- Each cluster is owned by exactly one scheduler instance.
+ coalesce
+ The process of merging adjacent holes into a single larger hole.
+ Sometimes this process is referred to as garbage collection.
-:dfn:`coalesce`
- The process of merging adjacent holes into a single larger hole. Sometimes
- this process is referred to as garbage collection.
+ Configuration Table
+ A table which contains information used to tailor RTEMS for a particular
+ application.
-:dfn:`Configuration Table`
- A table which contains information used to tailor RTEMS for a particular
- application.
+ context
+ All of the processor registers and operating system data structures
+ associated with a task.
-:dfn:`context`
- All of the processor registers and operating system data structures
- associated with a task.
+ context switch
+ Alternate term for task switch. Taking control of the processor from one
+ task and transferring it to another task.
-:dfn:`context switch`
- Alternate term for task switch. Taking control of the processor from one
- task and transferring it to another task.
+ control block
+ A data structure used by the executive to define and control an object.
-:dfn:`control block`
- A data structure used by the executive to define and control an object.
+ core
+ When used in this manual, this term refers to the internal executive
+ utility functions. In the interest of application portability, the core
+ of the executive should not be used directly by applications.
-:dfn:`core`
- When used in this manual, this term refers to the internal executive
- utility functions. In the interest of application portability, the core of
- the executive should not be used directly by applications.
+ CPU
+ An acronym for Central Processing Unit.
-:dfn:`CPU`
- An acronym for Central Processing Unit.
+ critical section
+ A section of code which must be executed indivisibly.
-:dfn:`critical section`
- A section of code which must be executed indivisibly.
+ CRT
+ An acronym for Cathode Ray Tube. Normally used in reference to the
+ man-machine interface.
+
+ deadline
+ A fixed time limit by which a task must have completed a set of actions.
+ Beyond this point, the results are of reduced value and may even be
+ considered useless or harmful.
+
+ device
+ A peripheral used by the application that requires special operation
+ software. See also device driver.
+
+ device driver
+ Control software for special peripheral devices used by the application.
+
+ directives
+ RTEMS' provided routines that provide support mechanisms for real-time
+ applications.
+
+ dispatch
+ The act of loading a task's context onto the CPU and transferring control
+ of the CPU to that task.
+
+ dormant
+ The state entered by a task after it is created and before it has been
+ started.
+
+ Device Driver Table
+ A table which contains the entry points for each of the configured device
+ drivers.
+
+ dual-ported
+ A term used to describe memory which can be accessed at two different
+ addresses.
+
+ embedded
+ An application that is delivered as a hidden part of a larger system.
+ For example, the software in a fuel-injection control system is an
+ embedded application found in many late-model automobiles.
-:dfn:`CRT`
- An acronym for Cathode Ray Tube. Normally used in reference to the
- man-machine interface.
+ envelope
+ A buffer provided by the MPCI layer to RTEMS which is used to pass
+ messages between nodes in a multiprocessor system. It typically contains
+ routing information needed by the MPCI. The contents of an envelope are
+ referred to as a packet.
+
+ entry point
+ The address at which a function or task begins to execute. In C, the
+ entry point of a function is the function's name.
+
+ events
+ A method for task communication and synchronization. The directives
+ provided by the event manager are used to service events.
-:dfn:`deadline`
- A fixed time limit by which a task must have completed a set of actions.
- Beyond this point, the results are of reduced value and may even be
- considered useless or harmful.
+ exception
+ A synonym for interrupt.
-:dfn:`device`
- A peripheral used by the application that requires special operation
- software. See also device driver.
+ executing task
+ The task state entered by a task after it has been given control of the
+ processor. In 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.
-:dfn:`device driver`
- Control software for special peripheral devices used by the application.
+ executive
+ In this document, this term is used to referred to RTEMS. Commonly, an
+ executive is a small real-time operating system used in embedded systems.
-:dfn:`directives`
- RTEMS' provided routines that provide support mechanisms for real-time
- applications.
+ exported
+ An object known by all nodes in a multiprocessor system. An object
+ created with the GLOBAL attribute will be exported.
-:dfn:`dispatch`
- The act of loading a task's context onto the CPU and transferring control
- of the CPU to that task.
+ external address
+ The address used to access dual-ported memory by all the nodes in a
+ system which do not own the memory.
-:dfn:`dormant`
- The state entered by a task after it is created and before it has been
- started.
+ FIFO
+ An acronym for First In First Out.
+
+ First In First Out
+ A discipline for manipulating entries in a data structure.
-:dfn:`Device Driver Table`
- A table which contains the entry points for each of the configured device
- drivers.
+ floating point coprocessor
+ A component used in computer systems to enhance performance in
+ mathematically intensive situations. It is typically viewed as a logical
+ extension of the primary processor.
-:dfn:`dual-ported`
- A term used to describe memory which can be accessed at two different
- addresses.
+ freed
+ A resource that has been released by the application to RTEMS.
+
+ global
+ An object that has been created with the GLOBAL attribute and exported to
+ all nodes in a multiprocessor system.
-:dfn:`embedded`
- An application that is delivered as a hidden part of a larger system. For
- example, the software in a fuel-injection control system is an embedded
- application found in many late-model automobiles.
+ handler
+ The equivalent of a manager, except that it is internal to RTEMS and
+ forms part of the core. A handler is a collection of routines which
+ provide a related set of functions. For example, there is a handler used
+ by RTEMS to manage all objects.
-:dfn:`envelope`
- A buffer provided by the MPCI layer to RTEMS which is used to pass messages
- between nodes in a multiprocessor system. It typically contains routing
- information needed by the MPCI. The contents of an envelope are referred
- to as a packet.
-
-:dfn:`entry point`
- The address at which a function or task begins to execute. In C, the entry
- point of a function is the function's name.
-
-:dfn:`events`
- A method for task communication and synchronization. The directives
- provided by the event manager are used to service events.
+ hard real-time system
+ A real-time system in which a missed deadline causes the worked performed
+ to have no value or to result in a catastrophic effect on the integrity
+ of the system.
-:dfn:`exception`
- A synonym for interrupt.
+ heap
+ A data structure used to dynamically allocate and deallocate variable
+ sized blocks of memory.
-:dfn:`executing task`
- The task state entered by a task after it has been given control of the
- processor. In 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.
+ heir task
+ A task is an 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.
-:dfn:`executive`
- In this document, this term is used to referred to RTEMS. Commonly, an
- executive is a small real-time operating system used in embedded systems.
+ heterogeneous
+ A multiprocessor computer system composed of dissimilar processors.
-:dfn:`exported`
- An object known by all nodes in a multiprocessor system. An object created
- with the GLOBAL attribute will be exported.
+ homogeneous
+ A multiprocessor computer system composed of a single type of processor.
-:dfn:`external address`
- The address used to access dual-ported memory by all the nodes in a system
- which do not own the memory.
+ ID
+ An RTEMS assigned identification tag used to access an active object.
-:dfn:`FIFO`
- An acronym for First In First Out.
+ IDLE task
+ A special low priority task which assumes control of the CPU when no
+ other task is able to execute.
-:dfn:`First In First Out`
- A discipline for manipulating entries in a data structure.
+ interface
+ A specification of the methodology used to connect multiple independent
+ subsystems.
-:dfn:`floating point coprocessor`
- A component used in computer systems to enhance performance in
- mathematically intensive situations. It is typically viewed as a logical
- extension of the primary processor.
+ internal address
+ The address used to access dual-ported memory by the node which owns the
+ memory.
-:dfn:`freed`
- A resource that has been released by the application to RTEMS.
+ interrupt
+ A hardware facility that causes the CPU to suspend execution, save its
+ status, and transfer control to a specific location.
-:dfn:`global`
- An object that has been created with the GLOBAL attribute and exported to
- all nodes in a multiprocessor system.
+ interrupt level
+ A mask used to by the CPU to determine which pending interrupts should be
+ serviced. If a pending interrupt is below the current interrupt level,
+ then the CPU does not recognize that interrupt.
-:dfn:`handler`
- The equivalent of a manager, except that it is internal to RTEMS and forms
- part of the core. A handler is a collection of routines which provide a
- related set of functions. For example, there is a handler used by RTEMS to
- manage all objects.
+ Interrupt Service Routine
+ An ISR is invoked by the CPU to process a pending interrupt.
-:dfn:`hard real-time system`
- A real-time system in which a missed deadline causes the worked performed
- to have no value or to result in a catastrophic effect on the integrity of
- the system.
+ I/O
+ An acronym for Input/Output.
-:dfn:`heap`
- A data structure used to dynamically allocate and deallocate variable sized
- blocks of memory.
+ ISR
+ An acronym for Interrupt Service Routine.
-:dfn:`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.
+ kernel
+ In this document, this term is used as a synonym for executive.
-:dfn:`heterogeneous`
- A multiprocessor computer system composed of dissimilar processors.
+ list
+ A data structure which allows for dynamic addition and removal of
+ entries. It is not statically limited to a particular size.
-:dfn:`homogeneous`
- A multiprocessor computer system composed of a single type of processor.
+ little endian
+ A data representation scheme in which the bytes composing a numeric value
+ are arranged such that the least significant byte is at the lowest
+ address.
-:dfn:`ID`
- An RTEMS assigned identification tag used to access an active object.
+ local
+ An object which was created with the LOCAL attribute and is accessible
+ only on the node it was created and resides upon. In a single processor
+ configuration, all objects are local.
-:dfn:`IDLE task`
- A special low priority task which assumes control of the CPU when no other
- task is able to execute.
+ local operation
+ The manipulation of an object which resides on the same node as the
+ calling task.
-:dfn:`interface`
- A specification of the methodology used to connect multiple independent
- subsystems.
+ logical address
+ An address used by an application. In a system without memory
+ management, logical addresses will equal physical addresses.
-:dfn:`internal address`
- The address used to access dual-ported memory by the node which owns the
- memory.
+ loosely-coupled
+ A multiprocessor configuration where shared memory is not used for
+ communication.
-:dfn:`interrupt`
- A hardware facility that causes the CPU to suspend execution, save its
- status, and transfer control to a specific location.
+ major number
+ The index of a device driver in the Device Driver Table.
-:dfn:`interrupt level`
- A mask used to by the CPU to determine which pending interrupts should be
- serviced. If a pending interrupt is below the current interrupt level,
- then the CPU does not recognize that interrupt.
+ manager
+ A group of related RTEMS' directives which provide access and control
+ over resources.
-:dfn:`Interrupt Service Routine`
- An ISR is invoked by the CPU to process a pending interrupt.
+ memory pool
+ Used interchangeably with heap.
-:dfn:`I/O`
- An acronym for Input/Output.
+ message
+ A sixteen byte entity used to communicate between tasks. Messages are
+ sent to message queues and stored in message buffers.
-:dfn:`ISR`
- An acronym for Interrupt Service Routine.
+ message buffer
+ A block of memory used to store messages.
-:dfn:`kernel`
- In this document, this term is used as a synonym for executive.
+ message queue
+ An RTEMS object used to synchronize and communicate between tasks by
+ transporting messages between sending and receiving tasks.
-:dfn:`list`
- A data structure which allows for dynamic addition and removal of entries.
- It is not statically limited to a particular size.
+ Message Queue Control Block
+ A data structure associated with each message queue used by RTEMS to
+ manage that message queue.
-:dfn:`little endian`
- A data representation scheme in which the bytes composing a numeric value
- are arranged such that the least significant byte is at the lowest address.
+ minor number
+ A numeric value passed to a device driver, the exact usage of which is
+ driver dependent.
-:dfn:`local`
- An object which was created with the LOCAL attribute and is accessible only
- on the node it was created and resides upon. In a single processor
- configuration, all objects are local.
+ mode
+ An entry in a task's control block that is used to determine if the task
+ allows preemption, timeslicing, processing of signals, and the interrupt
+ disable level used by the task.
-:dfn:`local operation`
- The manipulation of an object which resides on the same node as the calling
- task.
+ MPCI
+ An acronym for Multiprocessor Communications Interface Layer.
-:dfn:`logical address`
- An address used by an application. In a system without memory management,
- logical addresses will equal physical addresses.
+ multiprocessing
+ The simultaneous execution of two or more processes by a multiple
+ processor computer system.
-:dfn:`loosely-coupled`
- A multiprocessor configuration where shared memory is not used for
- communication.
+ multiprocessor
+ A computer with multiple CPUs available for executing applications.
-:dfn:`major number`
- The index of a device driver in the Device Driver Table.
+ Multiprocessor Communications Interface Layer
+ A set of user-provided routines which enable the nodes in a
+ multiprocessor system to communicate with one another.
-:dfn:`manager`
- A group of related RTEMS' directives which provide access and control over
- resources.
+ Multiprocessor Configuration Table
+ The data structure defining the characteristics of the multiprocessor
+ target system with which RTEMS will communicate.
-:dfn:`memory pool`
- Used interchangeably with heap.
+ multitasking
+ The alternation of execution amongst a group of processes on a single
+ CPU. A scheduling algorithm is used to determine which process executes
+ at which time.
-:dfn:`message`
- A sixteen byte entity used to communicate between tasks. Messages are sent
- to message queues and stored in message buffers.
+ mutual exclusion
+ A term used to describe the act of preventing other tasks from accessing
+ a resource simultaneously.
-:dfn:`message buffer`
- A block of memory used to store messages.
+ nested
+ A term used to describe an ASR that occurs during another ASR or an ISR
+ that occurs during another ISR.
-:dfn:`message queue`
- An RTEMS object used to synchronize and communicate between tasks by
- transporting messages between sending and receiving tasks.
+ node
+ A term used to reference a processor running RTEMS in a multiprocessor
+ system.
+
+ non-existent
+ The state occupied by an uncreated or deleted task.
+
+ numeric coprocessor
+ A component used in computer systems to enhance performance in
+ mathematically intensive situations. It is typically viewed as a logical
+ extension of the primary processor.
-:dfn:`Message Queue Control Block`
- A data structure associated with each message queue used by RTEMS to manage
- that message queue.
+ object
+ In this document, this term is used to refer collectively to tasks,
+ timers, message queues, partitions, regions, semaphores, ports, and rate
+ monotonic periods. All RTEMS objects have IDs and user-assigned names.
-:dfn:`minor number`
- A numeric value passed to a device driver, the exact usage of which is
- driver dependent.
+ object-oriented
+ A term used to describe systems with common mechanisms for utilizing a
+ variety of entities. Object-oriented systems shield the application from
+ implementation details.
-:dfn:`mode`
- An entry in a task's control block that is used to determine if the task
- allows preemption, timeslicing, processing of signals, and the interrupt
- disable level used by the task.
+ operating system
+ The software which controls all the computer's resources and provides the
+ base upon which application programs can be written.
-:dfn:`MPCI`
- An acronym for Multiprocessor Communications Interface Layer.
+ overhead
+ The portion of the CPUs processing power consumed by the operating
+ system.
-:dfn:`multiprocessing`
- The simultaneous execution of two or more processes by a multiple processor
- computer system.
+ packet
+ A buffer which contains the messages passed between nodes in a
+ multiprocessor system. A packet is the contents of an envelope.
-:dfn:`multiprocessor`
- A computer with multiple CPUs available for executing applications.
+ partition
+ An RTEMS object which is used to allocate and deallocate fixed size
+ blocks of memory from an dynamically specified area of memory.
-:dfn:`Multiprocessor Communications Interface Layer`
- A set of user-provided routines which enable the nodes in a multiprocessor
- system to communicate with one another.
+ partition
+ Clusters with a cardinality of one are partitions.
-:dfn:`Multiprocessor Configuration Table`
- The data structure defining the characteristics of the multiprocessor
- target system with which RTEMS will communicate.
+ Partition Control Block
+ A data structure associated with each partition used by RTEMS to manage
+ that partition.
-:dfn:`multitasking`
- The alternation of execution amongst a group of processes on a single CPU.
- A scheduling algorithm is used to determine which process executes at which
- time.
+ pending
+ A term used to describe a task blocked waiting for an event, message,
+ semaphore, or signal.
-:dfn:`mutual exclusion`
- A term used to describe the act of preventing other tasks from accessing a
- resource simultaneously.
+ periodic task
+ A task which must execute at regular intervals and comply with a hard
+ deadline.
+
+ physical address
+ The actual hardware address of a resource.
-:dfn:`nested`
- A term used to describe an ASR that occurs during another ASR or an ISR
- that occurs during another ISR.
+ poll
+ A mechanism used to determine if an event has occurred by periodically
+ checking for a particular status. Typical events include arrival of
+ data, completion of an action, and errors.
+
+ pool
+ A collection from which resources are allocated.
-:dfn:`node`
- A term used to reference a processor running RTEMS in a multiprocessor
- system.
+ portability
+ A term used to describe the ease with which software can be rehosted on
+ another computer.
-:dfn:`non-existent`
- The state occupied by an uncreated or deleted task.
+ posting
+ The act of sending an event, message, semaphore, or signal to a task.
-:dfn:`numeric coprocessor`
- A component used in computer systems to enhance performance in
- mathematically intensive situations. It is typically viewed as a logical
- extension of the primary processor.
+ preempt
+ The act of forcing a task to relinquish the processor and dispatching to
+ another task.
-:dfn:`object`
- In this document, this term is used to refer collectively to tasks, timers,
- message queues, partitions, regions, semaphores, ports, and rate monotonic
- periods. All RTEMS objects have IDs and user-assigned names.
+ priority
+ A mechanism used to represent the relative importance of an element in a
+ set of items. RTEMS uses priority to determine which task should
+ execute.
+
+ priority boosting
+ A simple approach to extend the priority inheritance protocol for
+ clustered scheduling is priority boosting. In case a mutex is owned by a
+ task of another cluster, then the priority of the owner task is raised to
+ an artificially high priority, the pseudo-interrupt priority.
-:dfn:`object-oriented`
- A term used to describe systems with common mechanisms for utilizing a
- variety of entities. Object-oriented systems shield the application from
- implementation details.
+ priority inheritance
+ An algorithm that calls for the lower priority task holding a resource to
+ have its priority increased to that of the highest priority task blocked
+ waiting for that resource. This avoids the problem of priority
+ inversion.
-:dfn:`operating system`
- The software which controls all the computer's resources and provides the
- base upon which application programs can be written.
+ priority inversion
+ A form of indefinite postponement which occurs when a high priority tasks
+ requests access to shared resource currently allocated to low priority
+ task. The high priority task must block until the low priority task
+ releases the resource.
-:dfn:`overhead`
- The portion of the CPUs processing power consumed by the operating system.
+ processor utilization
+ The percentage of processor time used by a task or a set of tasks.
-:dfn:`packet`
- A buffer which contains the messages passed between nodes in a
- multiprocessor system. A packet is the contents of an envelope.
+ proxy
+ An RTEMS control structure used to represent, on a remote node, a task
+ which must block as part of a remote operation.
+
+ Proxy Control Block
+ A data structure associated with each proxy used by RTEMS to manage that
+ proxy.
+
+ PTCB
+ An acronym for Partition Control Block.
+
+ PXCB
+ An acronym for Proxy Control Block.
+
+ quantum
+ The application defined unit of time in which the processor is allocated.
+
+ queue
+ Alternate term for message queue.
+
+ QCB
+ An acronym for Message Queue Control Block.
+
+ 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.
-:dfn:`partition`
- An RTEMS object which is used to allocate and deallocate fixed size blocks
- of memory from an dynamically specified area of memory.
+ real-time
+ A term used to describe systems which are characterized by requiring
+ deterministic response times to external stimuli. The external stimuli
+ require that the response occur at a precise time or the response is
+ incorrect.
+
+ reentrant
+ A term used to describe routines which do not modify themselves or global
+ variables.
+
+ region
+ An RTEMS object which is used to allocate and deallocate variable size
+ blocks of memory from a dynamically specified area of memory.
+
+ Region Control Block
+ A data structure associated with each region used by RTEMS to manage that
+ region.
+
+ registers
+ Registers are locations physically located within a component, typically
+ used for device control or general purpose storage.
+
+ remote
+ Any object that does not reside on the local node.
+
+ remote operation
+ The manipulation of an object which does not reside on the same node as
+ the calling task.
+
+ return code
+ Also known as error code or return value.
+
+ resource
+ A hardware or software entity to which access must be controlled.
+
+ resume
+ Removing a task from the suspend state. If the task's state is ready
+ following a call to the ``rtems_task_resume`` directive, then the task is
+ available for scheduling.
+
+ return code
+ A value returned by RTEMS directives to indicate the completion status of
+ the directive.
+
+ RNCB
+ An acronym for Region Control Block.
+
+ round-robin
+ A task scheduling discipline in which tasks of equal priority are
+ executed in the order in which they are made ready.
+
+ RS-232
+ A standard for serial communications.
+
+ running
+ 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.
+
+ schedulable
+ A set of tasks which can be guaranteed to meet their deadlines based upon
+ a specific scheduling algorithm.
+
+ schedule
+ The process of choosing which task should next enter the executing state.
+
+ scheduled task
+ A task is 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.
+
+ scheduler
+ A scheduler or 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.
+
+ scheduler instance
+ A 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. See
+ :ref:`Configuring a System`.
+
+ segments
+ Variable sized memory blocks allocated from a region.
+
+ semaphore
+ An RTEMS object which is used to synchronize tasks and provide mutually
+ exclusive access to resources.
+
+ Semaphore Control Block
+ A data structure associated with each semaphore used by RTEMS to manage
+ that semaphore.
+
+ shared memory
+ Memory which is accessible by multiple nodes in a multiprocessor system.
+
+ signal
+ An RTEMS provided mechanism to communicate asynchronously with a task.
+ Upon reception of a signal, the ASR of the receiving task will be
+ invoked.
+
+ signal set
+ A thirty-two bit entity which is used to represent a task's collection of
+ pending signals and the signals sent to a task.
+
+ SMCB
+ An acronym for Semaphore Control Block.
+
+ SMP locks
+ The 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.
+
+ SMP barriers
+ The 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.
+
+ soft real-time system
+ A real-time system in which a missed deadline does not compromise the
+ integrity of the system.
+
+ sporadic task
+ A task which executes at irregular intervals and must comply with a hard
+ deadline. A minimum period of time between successive iterations of the
+ task can be guaranteed.
+
+ stack
+ A data structure that is managed using a Last In First Out (LIFO)
+ discipline. Each task has a stack associated with it which is used to
+ store return information and local variables.
+
+ status code
+ Also known as error code or return value.
+
+ suspend
+ A term used to describe a task that is not competing for the CPU because it
+ has had a ``rtems_task_suspend`` directive.
+
+ synchronous
+ Related in order or timing to other occurrences in the system.
+
+ system call
+ In this document, this is used as an alternate term for directive.
+
+ target
+ The system on which the application will ultimately execute.
+
+ task
+ thread
+ A logically complete thread of execution. It consists normally of a set
+ of registers and a stack. The scheduler assigns processors to a subset
+ of the ready tasks. The terms task and thread are synonym in RTEMS. The
+ term task is used throughout the Classic API, however, internally in the
+ operating system implementation and the POSIX API the term thread is
+ used.
+
+ Task Control Block
+ A data structure associated with each task used by RTEMS to manage that
+ task.
+
+ task migration
+ Task migration happens in case a task stops execution on one processor
+ and resumes execution on another processor.
+
+ task processor affinity
+ The set of processors on which a task is allowed to execute.
+
+ task switch
+ Alternate terminology for context switch. Taking control of the
+ processor from one task and given to another.
+
+ TCB
+ An acronym for Task Control Block.
+
+ thread dispatch
+ The thread dispatch transfers control of the processor from the currently
+ executing thread to the heir thread of the processor.
+
+ tick
+ The basic unit of time used by RTEMS. It is a user-configurable number
+ of microseconds. The current tick expires when a clock tick directive is
+ invoked.
+
+ tightly-coupled
+ A multiprocessor configuration system which communicates via shared
+ memory.
+
+ timeout
+ An argument provided to a number of directives which determines the
+ maximum length of time an application task is willing to wait to acquire
+ the resource if it is not immediately available.
+
+ timer
+ An RTEMS object used to invoke subprograms at a later time.
+
+ Timer Control Block
+ A data structure associated with each timer used by RTEMS to manage that
+ timer.
+
+ timeslicing
+ A task scheduling discipline in which tasks of equal priority are
+ executed for a specific period of time before being preempted by another
+ task.
+
+ timeslice
+ The application defined unit of time in which the processor is allocated.
+
+ TLS
+ An acronym for Thread-Local Storage :cite:`Drepper:2013:TLS`. TLS is
+ available in :term:`C11` and :term:`C++11`. The support for TLS depends
+ on the CPU port :cite:`RTEMS:CPU`.
+
+ TMCB
+ An acronym for Timer Control Block.
+
+ transient overload
+ A temporary rise in system activity which may cause deadlines to be
+ missed. Rate Monotonic Scheduling can be used to determine if all
+ deadlines will be met under transient overload.
+
+ user extensions
+ Software routines provided by the application to enhance the
+ functionality of RTEMS.
+
+ User Extension Table
+ A table which contains the entry points for each user extensions.
+
+ User Initialization Tasks Table
+ A table which contains the information needed to create and start each of
+ the user initialization tasks.
-:dfn:`partition`
- Clusters with a cardinality of one are :dfn:`partitions`.
-
-:dfn:`Partition Control Block`
- A data structure associated with each partition used by RTEMS to manage
- that partition.
-
-:dfn:`pending`
- A term used to describe a task blocked waiting for an event, message,
- semaphore, or signal.
-
-:dfn:`periodic task`
- A task which must execute at regular intervals and comply with a hard
- deadline.
-
-:dfn:`physical address`
- The actual hardware address of a resource.
-
-:dfn:`poll`
- A mechanism used to determine if an event has occurred by periodically
- checking for a particular status. Typical events include arrival of data,
- completion of an action, and errors.
-
-:dfn:`pool`
- A collection from which resources are allocated.
-
-:dfn:`portability`
- A term used to describe the ease with which software can be rehosted on
- another computer.
-
-:dfn:`posting`
- The act of sending an event, message, semaphore, or signal to a task.
-
-:dfn:`preempt`
- The act of forcing a task to relinquish the processor and dispatching to
- another task.
-
-:dfn:`priority`
- A mechanism used to represent the relative importance of an element in a
- set of items. RTEMS uses priority to determine which task should execute.
-
-:dfn:`priority boosting`
- A simple approach to extend the priority inheritance protocol for clustered
- scheduling is :dfn:`priority boosting`. In case a mutex is owned by a task
- of another cluster, then the priority of the owner task is raised to an
- artificially high priority, the pseudo-interrupt priority.
-
-:dfn:`priority inheritance`
- An algorithm that calls for the lower priority task holding a resource to
- have its priority increased to that of the highest priority task blocked
- waiting for that resource. This avoids the problem of priority inversion.
-
-:dfn:`priority inversion`
- A form of indefinite postponement which occurs when a high priority tasks
- requests access to shared resource currently allocated to low priority
- task. The high priority task must block until the low priority task
- releases the resource.
-
-:dfn:`processor utilization`
- The percentage of processor time used by a task or a set of tasks.
-
-:dfn:`proxy`
- An RTEMS control structure used to represent, on a remote node, a task
- which must block as part of a remote operation.
-
-:dfn:`Proxy Control Block`
- A data structure associated with each proxy used by RTEMS to manage that
- proxy.
-
-:dfn:`PTCB`
- An acronym for Partition Control Block.
-
-:dfn:`PXCB`
- An acronym for Proxy Control Block.
-
-:dfn:`quantum`
- The application defined unit of time in which the processor is allocated.
-
-:dfn:`queue`
- Alternate term for message queue.
-
-:dfn:`QCB`
- An acronym for Message Queue Control Block.
-
-:dfn:`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.
-
-:dfn:`real-time`
- A term used to describe systems which are characterized by requiring
- deterministic response times to external stimuli. The external stimuli
- require that the response occur at a precise time or the response is
- incorrect.
-
-:dfn:`reentrant`
- A term used to describe routines which do not modify themselves or global
- variables.
-
-:dfn:`region`
- An RTEMS object which is used to allocate and deallocate variable size
- blocks of memory from a dynamically specified area of memory.
-
-:dfn:`Region Control Block`
- A data structure associated with each region used by RTEMS to manage that
- region.
-
-:dfn:`registers`
- Registers are locations physically located within a component, typically
- used for device control or general purpose storage.
-
-:dfn:`remote`
- Any object that does not reside on the local node.
-
-:dfn:`remote operation`
- The manipulation of an object which does not reside on the same node as the
- calling task.
-
-:dfn:`return code`
- Also known as error code or return value.
-
-:dfn:`resource`
- A hardware or software entity to which access must be controlled.
-
-:dfn:`resume`
- Removing a task from the suspend state. If the task's state is ready
- following a call to the ``rtems_task_resume`` directive, then the task is
- available for scheduling.
-
-:dfn:`return code`
- A value returned by RTEMS directives to indicate the completion status of
- the directive.
-
-:dfn:`RNCB`
- An acronym for Region Control Block.
-
-:dfn:`round-robin`
- A task scheduling discipline in which tasks of equal priority are executed
- in the order in which they are made ready.
-
-:dfn:`RS-232`
- A standard for serial communications.
-
-:dfn:`running`
- 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.
-
-:dfn:`schedulable`
- A set of tasks which can be guaranteed to meet their deadlines based upon a
- specific scheduling algorithm.
-
-:dfn:`schedule`
- The process of choosing which task should next enter the executing state.
-
-:dfn:`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.
-
-:dfn:`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.
-
-:dfn:`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. See
- :ref:`Configuring a System`.
-
-:dfn:`segments`
- Variable sized memory blocks allocated from a region.
-
-:dfn:`semaphore`
- An RTEMS object which is used to synchronize tasks and provide mutually
- exclusive access to resources.
-
-:dfn:`Semaphore Control Block`
- A data structure associated with each semaphore used by RTEMS to manage
- that semaphore.
-
-:dfn:`shared memory`
- Memory which is accessible by multiple nodes in a multiprocessor system.
-
-:dfn:`signal`
- An RTEMS provided mechanism to communicate asynchronously with a task.
- Upon reception of a signal, the ASR of the receiving task will be invoked.
-
-:dfn:`signal set`
- A thirty-two bit entity which is used to represent a task's collection of
- pending signals and the signals sent to a task.
-
-:dfn:`SMCB`
- An acronym for Semaphore Control Block.
-
-:dfn:`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.
-
-:dfn:`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.
-
-:dfn:`soft real-time system`
- A real-time system in which a missed deadline does not compromise the
- integrity of the system.
-
-:dfn:`sporadic task`
- A task which executes at irregular intervals and must comply with a hard
- deadline. A minimum period of time between successive iterations of the
- task can be guaranteed.
-
-:dfn:`stack`
- A data structure that is managed using a Last In First Out (LIFO)
- discipline. Each task has a stack associated with it which is used to
- store return information and local variables.
-
-:dfn:`status code`
- Also known as error code or return value.
-
-:dfn:`suspend`
- A term used to describe a task that is not competing for the CPU because it
- has had a ``rtems_task_suspend`` directive.
-
-:dfn:`synchronous`
- Related in order or timing to other occurrences in the system.
-
-:dfn:`system call`
- In this document, this is used as an alternate term for directive.
-
-:dfn:`target`
- The system on which the application will ultimately execute.
-
-.. _task:
-
-:dfn:`task`
- A logically complete thread of execution. It consists normally of a set of
- registers and a stack. The scheduler assigns processors to a subset of the
- ready tasks. The terms :dfn:`task` and :dfn:`thread` are synonym in RTEMS.
- The term :dfn:`task` is used throughout the Classic API, however,
- internally in the operating system implementation and the POSIX API the
- term :dfn:`thread` is used.
-
-:dfn:`Task Control Block`
- A data structure associated with each task used by RTEMS to manage that
- task.
-
-:dfn:`task migration`
- :dfn:`Task migration` happens in case a task stops execution on one
- processor and resumes execution on another processor.
-
-:dfn:`task processor affinity`
- The set of processors on which a task is allowed to execute.
-
-:dfn:`task switch`
- Alternate terminology for context switch. Taking control of the processor
- from one task and given to another.
-
-:dfn:`TCB`
- An acronym for Task Control Block.
-
-:dfn:`thread`
- See :ref:`task <task>`.
-
-:dfn:`thread dispatch`
- The :dfn:`thread dispatch` transfers control of the processor from the
- currently executing thread to the heir thread of the processor.
-
-:dfn:`tick`
- The basic unit of time used by RTEMS. It is a user-configurable number of
- microseconds. The current tick expires when a clock tick directive is
- invoked.
-
-:dfn:`tightly-coupled`
- A multiprocessor configuration system which communicates via shared memory.
-
-:dfn:`timeout`
- An argument provided to a number of directives which determines the maximum
- length of time an application task is willing to wait to acquire the
- resource if it is not immediately available.
-
-:dfn:`timer`
- An RTEMS object used to invoke subprograms at a later time.
-
-:dfn:`Timer Control Block`
- A data structure associated with each timer used by RTEMS to manage that
- timer.
-
-:dfn:`timeslicing`
- A task scheduling discipline in which tasks of equal priority are executed
- for a specific period of time before being preempted by another task.
-
-:dfn:`timeslice`
- The application defined unit of time in which the processor is allocated.
-
-.. _TLS:
-
-:dfn:`TLS`
- An acronym for Thread-Local Storage :cite:`Drepper:2013:TLS`. TLS is
- available in :ref:`C11 <C11>` and :ref:`C++11 <C++11>`. The support for
- TLS depends on the CPU port :cite:`RTEMS:CPU`.
-
-:dfn:`TMCB`
- An acronym for Timer Control Block.
-
-:dfn:`transient overload`
- A temporary rise in system activity which may cause deadlines to be missed.
- Rate Monotonic Scheduling can be used to determine if all deadlines will be
- met under transient overload.
-
-:dfn:`user extensions`
- Software routines provided by the application to enhance the functionality
- of RTEMS.
-
-:dfn:`User Extension Table`
- A table which contains the entry points for each user extensions.
-
-:dfn:`User Initialization Tasks Table`
- A table which contains the information needed to create and start each of
- the user initialization tasks.
-
-:dfn:`user-provided`
- Alternate term for user-supplied. This term is used to designate any
- software routines which must be written by the application designer.
-
-:dfn:`user-supplied`
- Alternate term for user-provided. This term is used to designate any
- software routines which must be written by the application designer.
-
-:dfn:`vector`
- Memory pointers used by the processor to fetch the address of routines
- which will handle various exceptions and interrupts.
-
-:dfn:`wait queue`
- The list of tasks blocked pending the release of a particular resource.
- Message queues, regions, and semaphores have a wait queue associated with
- them.
-
-:dfn:`yield`
- When a task voluntarily releases control of the processor.
+ user-provided
+ user-supplied
+ These terms are used to designate any software routines which must be
+ written by the application designer.
+
+ vector
+ Memory pointers used by the processor to fetch the address of routines
+ which will handle various exceptions and interrupts.
+
+ wait queue
+ The list of tasks blocked pending the release of a particular resource.
+ Message queues, regions, and semaphores have a wait queue associated with
+ them.
+
+ yield
+ When a task voluntarily releases control of the processor.
diff --git a/c-user/key_concepts.rst b/c-user/key_concepts.rst
index 6af8067..cd41c7f 100644
--- a/c-user/key_concepts.rst
+++ b/c-user/key_concepts.rst
@@ -359,12 +359,12 @@ Thread Queues
=============
.. index:: thread queues
-In case more than one :ref:`thread <task>` may wait on a synchronization
-object, e.g. a semaphore or a message queue, then the waiting threads are added
-to a data structure called the thread queue. Thread queues are named task wait
-queues in the Classic API. There are two thread queuing disciplines available
-which define the order of the threads on a particular thread queue. Threads
-can wait in FIFO or priority order.
+In case more than one :term:`thread` may wait on a synchronization object, e.g.
+a semaphore or a message queue, then the waiting threads are added to a data
+structure called the thread queue. Thread queues are named task wait queues in
+the Classic API. There are two thread queuing disciplines available which
+define the order of the threads on a particular thread queue. Threads can wait
+in FIFO or priority order.
In uni-processor configurations, the priority queuing discipline just orders
the threads according to their current priority and in FIFO order in case of