summaryrefslogtreecommitdiffstats
path: root/c-user/glossary.rst
diff options
context:
space:
mode:
Diffstat (limited to 'c-user/glossary.rst')
-rw-r--r--c-user/glossary.rst1884
1 files changed, 1189 insertions, 695 deletions
diff --git a/c-user/glossary.rst b/c-user/glossary.rst
index fe6749c..2516e90 100644
--- a/c-user/glossary.rst
+++ b/c-user/glossary.rst
@@ -1,780 +1,1274 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
+.. Copyright (C) 2022, 2023 Trinity College Dublin
+.. Copyright (C) 2020 Richi Dubey (richidubey@gmail.com)
+.. Copyright (C) 2015, 2023 embedded brains GmbH & Co. KG
+.. Copyright (C) 1988, 1998 On-Line Applications Research Corporation (OAR)
+
Glossary
********
.. glossary::
- :sorted:
-
- active
- A term used to describe an object which has been created by an
- application.
-
- aperiodic task
- A task which must execute only at irregular intervals and has only a soft
- deadline.
-
- API
- An acronym for Application Programming Interface.
-
- application
- In this document, software which makes use of RTEMS.
-
- ASR
- see Asynchronous Signal Routine.
-
- asynchronous
- Not related in order or timing to other occurrences in the system.
-
- 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.
-
- atomic operations
- Atomic operations are defined in terms of :term:`C11`.
-
- awakened
- A term used to describe a task that has been unblocked and may be
- scheduled to the CPU.
-
- 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.
-
- 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.
-
- block
- A physically contiguous area of memory.
-
- 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.
-
- broadcast
- To simultaneously send a message to a logical set of destinations.
-
- Board Support Package
- A collection of device initialization and control routines specific to a
- particular type of board or collection of boards.
-
- buffer
- A fixed length block of memory allocated from a partition.
-
- BSP
- An acronym for :term:`Board Support Package`.
-
- C11
- The standard ISO/IEC 9899:2011.
-
- 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.
-
- 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.
-
- 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 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.
-
- 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.
-
- 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.
-
- 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 :term:`Central Processing Unit`.
-
- 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.
-
- 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.
-
- exception
- A synonym for interrupt.
-
- 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.
-
- 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.
-
- exported
- An object known by all nodes in a multiprocessor system. An object
- created with the GLOBAL attribute will be exported.
-
- external address
- The address used to access dual-ported memory by all the nodes in a
- system which do not own the memory.
-
- FIFO
- An acronym for First In First Out.
-
- First In First Out
- A discipline for manipulating entries in a data structure.
-
- 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.
-
- 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.
-
- 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.
-
- 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.
-
- heap
- A data structure used to dynamically allocate and deallocate variable
- sized blocks of memory.
-
- 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.
-
- heterogeneous
- A multiprocessor computer system composed of dissimilar processors.
-
- homogeneous
- A multiprocessor computer system composed of a single type of processor.
-
- ID
- An RTEMS assigned identification tag used to access an active object.
-
- IDLE task
- A special low priority task which assumes control of the CPU when no
- other task is able to execute.
-
- interface
- A specification of the methodology used to connect multiple independent
- subsystems.
-
- internal address
- The address used to access dual-ported memory by the node which owns the
- memory.
-
- interrupt
- A hardware facility that causes the CPU to suspend execution, save its
- status, and transfer control to a specific location.
-
- 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.
+ :sorted:
- Interrupt Service Routine
- An ISR is invoked by the CPU to process a pending interrupt.
+ ABI
+ This term is an acronym for Application Binary Interface.
- I/O
- An acronym for Input/Output.
+ active
+ A term used to describe an object which has been created by an
+ application.
- ISR
- An acronym for :term:`Interrupt Service Routine`.
+ AMP
+ This term is an acronym for Asymmetric Multiprocessing.
- kernel
- In this document, this term is used as a synonym for executive.
+ APA
+ This term is an acronym for Arbitrary Processor Affinity. APA schedulers
+ allow a thread to have an arbitrary affinity to a processor set, rather than
+ a restricted mapping to only one processor of the set or the ability to run
+ on all processors of the set.
- list
- A data structure which allows for dynamic addition and removal of
- entries. It is not statically limited to a particular size.
+ It has two variants, :term:`Weak APA` and :term:`Strong APA`.
- 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.
+ aperiodic task
+ A task which must execute only at irregular intervals and has only a soft
+ deadline.
- 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.
+ API
+ This term is an acronym for Application Programming Interface.
- local operation
- The manipulation of an object which resides on the same node as the
- calling task.
+ application
+ In this document, software which makes use of RTEMS.
- logical address
- An address used by an application. In a system without memory
- management, logical addresses will equal physical addresses.
+ ASR
+ This term is an acronym for :term:`Asynchronous Signal Routine`.
- loosely-coupled
- A multiprocessor configuration where shared memory is not used for
- communication.
+ assembler language
+ The assembler language is a programming language which can be translated very
+ easily into machine code and data. For this project assembler languages are
+ restricted to languages accepted by the :term:`GNU` assembler
+ program for the target architectures.
- major number
- The index of a device driver in the Device Driver Table.
+ asynchronous
+ Not related in order or timing to other occurrences in the system.
- manager
- A group of related RTEMS' directives which provide access and control
- over resources.
+ 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.
- MCS
- An acronym for Mellor-Crummey Scott.
+ atomic operations
+ Atomic operations are defined in terms of :term:`C11`.
- memory pool
- Used interchangeably with heap.
+ awakened
+ A term used to describe a task that has been unblocked and may be
+ scheduled to the CPU.
- message
- A sixteen byte entity used to communicate between tasks. Messages are
- sent to message queues and stored in message buffers.
+ BCB
+ This term is an acronym for Barrier Control Block.
+
+ 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.
+
+ 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.
+
+ block
+ A physically contiguous area of memory.
+
+ 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.
+
+ Board Support Package
+ A collection of device initialization and control routines specific to a
+ particular type of board or collection of boards.
+
+ broadcast
+ To simultaneously send a message to a logical set of destinations.
+
+ BSP
+ This term is an acronym for :term:`Board Support Package`.
+
+ buffer
+ A fixed length block of memory allocated from a partition.
+
+ C language
+ The C language for this project is defined in terms of
+ :term:`C11`.
+
+ C++11
+ The standard ISO/IEC 14882:2011.
+
+ C++14
+ The standard ISO/IEC 14882:2014.
+
+ C++17
+ The standard ISO/IEC 14882:2017.
+
+ C++20
+ The standard ISO/IEC 14882:2020.
+
+ C11
+ The standard ISO/IEC 9899:2011.
+
+ C17
+ The standard ISO/IEC 9899:2018.
+
+ 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.
+
+ CCB
+ This term is an acronym for Change Control Board.
+
+ 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.
+
+ Clock Driver
+ The Clock Driver is a driver which provides the :term:`clock tick` and a
+ time counter. The time counter is used to drive the :term:`CLOCK_REALTIME`
+ and :term:`CLOCK_MONOTONIC`. The Clock Driver can be initialized by the
+ application with the :ref:`CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER` and
+ :ref:`CONFIGURE_MICROSECONDS_PER_TICK` application configuration options.
+
+ clock tick
+ The clock tick is a coarse time measure provided by RTEMS. The
+ :term:`Clock Driver` emits clock ticks at rate specified by the
+ :ref:`CONFIGURE_MICROSECONDS_PER_TICK` application configuration option. In
+ contrast to :term:`CLOCK_REALTIME` and :term:`CLOCK_MONOTONIC`, the clock
+ tick rate is not affected by incremental adjustments.
+
+ CLOCK_MONOTONIC
+ The CLOCK_MONOTONIC is a clock provided by RTEMS which measures the time
+ since an unspecified starting point. In contrast to :term:`CLOCK_REALTIME`,
+ this clock cannot be set. It may be affected by incremental adjustments for
+ example carried out by the :term:`NTP` or the use of a :term:`PPS` signal.
+ See also :term:`CLOCK_REALTIME`, :term:`clock tick`, and
+ :term:`Clock Driver`.
+
+ CLOCK_REALTIME
+ The CLOCK_REALTIME is a clock provided by RTEMS which measures the real time
+ (also known as wall-clock time). It is defined by :term:`POSIX`. In
+ particular, every day is treated as if it contains exactly 86400 seconds and
+ leap seconds are ignored. This clock can be set by the application which may
+ result in time jumps. It may be affected by incremental adjustments for
+ example carried out by the :term:`NTP` or the use of a :term:`PPS` signal.
+ RTEMS can represent time points of this clock in nanoseconds ranging from
+ 1988-01-01T00:00:00.000000000Z to 2514-05-31T01:53:03.999999999Z. See also
+ :term:`CLOCK_MONOTONIC`, :term:`clock tick`, and :term:`Clock Driver`.
+
+ 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 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.
+
+ 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.
+
+ 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.
+
+ 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
+ This term is an acronym for :term:`Central Processing Unit`.
+
+ critical section
+ A section of code which must be executed indivisibly.
+
+ CRT
+ This term is an acronym for Cathode Ray Tube. Normally used in reference to
+ the man-machine interface.
+
+ current priority
+ The current priority of a :term:`task` is the :term:`task priority` with
+ respect to the :term:`home scheduler` of the task. It is an aggregation of
+ the :term:`real priority` and temporary priority adjustments due to locking
+ protocols, the rate-monotonic period objects on some schedulers such as EDF,
+ and the :term:`POSIX` sporadic server. The current priority is an
+ :term:`eligible priority`.
+
+ 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.
+
+ Device Driver Table
+ A table which contains the entry points for each of the configured device
+ drivers.
+
+ 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.
+
+ Doorstop
+ `Doorstop <https://github.com/doorstop-dev/doorstop>`_ is a
+ requirements management tool.
+
+ dormant
+ The state entered by a task after it is created and before it has been
+ started.
+
+ DPCB
+ This term is an acronym for Dual-Ported Memory Control Block.
+
+ dual-ported
+ A term used to describe memory which can be accessed at two different
+ addresses.
+
+ dynamic extension sets
+ The dynamic extension sets are a list of :term:`user extensions`. The list
+ is defined by the system services used by the application and directive calls
+ such as :ref:`InterfaceRtemsExtensionCreate`. See also
+ :term:`initial extension sets`.
+
+ EARS
+ This term is an acronym for Easy Approach to Requirements Syntax.
+
+ EDF
+ This term is an acronym for Earliest Deadline First.
+
+ ELF
+ This term is an acronym for
+ `Executable and Linkable Format <https://en.wikipedia.org/wiki/Executable_and_Linkable_Format>`_.
+
+ eligible priority
+ An eligible priority of a :term:`task` is the :term:`task priority` with
+ respect to the corresponding :term:`eligible scheduler` of the task. An
+ eligible priority is either the :term:`current priority` or a
+ :term:`helping priority` of a task.
+
+ eligible scheduler
+ An eligible scheduler of a :term:`task` is a :term:`scheduler` which can be
+ used by the task to allocate a processor for the task.
+
+ 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.
+
+ 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.
+
+ 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.
+
+ error code
+ This term has the same meaning as :term:`status code`.
+
+ ESCB
+ This term is an acronym for Extension Set Control Block.
+
+ events
+ A method for task communication and synchronization. The directives
+ provided by the event manager are used to service events.
+
+ exception
+ A synonym for interrupt.
+
+ 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.
+
+ 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.
+
+ exported
+ An object known by all nodes in a multiprocessor system. An object
+ created with the GLOBAL attribute will be exported.
+
+ extension forward order
+ The :term:`user extensions` may be invoked in extension forward order. In
+ forward order, all user extensions of the :term:`initial extension sets` are
+ invoked before all user extensions of the :term:`dynamic extension sets`.
+ In the initial extension sets the order is defined by the table index. The
+ user extension with the lowest table index is invoked first. In the dynamic
+ extension sets the order is defined by the registration order. The first
+ registered user extension is invoked first. See also
+ :term:`extension reverse order`.
+
+ extension reverse order
+ The :term:`user extensions` may be invoked in extension reverse order. In
+ reverse order, all user extensions of the :term:`dynamic extension sets` are
+ invoked before all user extensions of the :term:`initial extension sets`.
+ In the dynamic extension sets the order is defined by the registration order.
+ The last registered user extension is invoked first. In the initial
+ extension sets the order is defined by the table index. The user extension
+ with the highest table index is invoked first. See also
+ :term:`extension forward order`.
+
+ external address
+ The address used to access dual-ported memory by all the nodes in a
+ system which do not own the memory.
+
+ FIFO
+ This term is an acronym for :term:`First In First Out`.
+
+ First In First Out
+ A discipline for manipulating entries in a data structure. See also
+ :term:`Last In First Out`.
+
+ 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.
+
+ formal model
+ A model of a computing component (hardware or software) that has a
+ mathematically based :term:`semantics`.
+
+ freed
+ A resource that has been released by the application to RTEMS.
+
+ Futex
+ This term is an abbreviation for
+ `Fast User-Space Locking <https://man7.org/linux/man-pages/man2/futex.2.html>`_.
+ The futex support in RTEMS is provided for the barriers of the
+ :term:`OpenMP` library provided by :term:`GCC`. It could be used to
+ implement high performance :term:`SMP` synchronization primitives which
+ offer random-fairness.
+
+ GCC
+ This term is an acronym for `GNU Compiler Collection <https://gcc.gnu.org/>`_.
+
+ global
+ An object that has been created with the GLOBAL attribute and exported to
+ all nodes in a multiprocessor system.
+
+ global construction
+ In the global construction, the C++ global constructors and constructor
+ functions are invoked. See :ref:`GlobalConstruction`.
+
+ GNAT
+ *GNAT* is the :term:`GNU` compiler for Ada, integrated into the
+ :term:`GCC`.
+
+ GNU
+ This term is an acronym for `GNU's Not Unix <https://www.gnu.org/>`_.
+
+ GPL
+ This term is an acronym for
+ `GNU General Public License <https://www.gnu.org/licenses>`__.
+
+ GPLv2
+ This term is an acronym for
+ `GNU General Public License Version 2 <https://www.gnu.org/licenses/old-licenses/gpl-2.0.html>`__.
+
+ GPLv3
+ This term is an acronym for
+ `GNU General Public License Version 3 <https://www.gnu.org/licenses/gpl-3.0.html>`__.
+
+ GR712RC
+ The
+ `GR712RC <https://www.gaisler.com/index.php/products/components/gr712rc>`_
+ is a :term:`system-on-chip` containing two processors of the :term:`SPARC`
+ :term:`target architecture`.
+
+ GR740
+ The
+ `GR740 <https://www.gaisler.com/index.php/products/components/gr740>`_
+ is a :term:`system-on-chip` containing four processors of the :term:`SPARC`
+ :term:`target architecture`.
+
+ 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.
+
+ 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.
+
+ heap
+ A data structure used to dynamically allocate and deallocate variable
+ sized blocks of memory.
+
+ 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.
+
+ helping priority
+ A helping priority of a :term:`task` is the :term:`task priority` with
+ respect to the corresponding :term:`helping scheduler` of the task. A
+ helping priority is an :term:`eligible priority`.
+
+ helping scheduler
+ A helping scheduler of a :term:`task` is a :term:`scheduler` which is a
+ :term:`eligible scheduler` and which is not the :term:`home scheduler` of
+ the task.
+
+ heterogeneous
+ A multiprocessor computer system composed of dissimilar processors.
+
+ higher priority
+ A :term:`task` ``H`` has a higher :term:`priority` than a task ``L``, if
+ task ``H`` is more important than task ``L``.
+
+ home scheduler
+ The home scheduler of a :term:`task` is a :term:`scheduler` which is an
+ :term:`eligible scheduler` and which is assigned to the task during its
+ initialization or explicitly via a directive call such as
+ :ref:`InterfaceRtemsTaskSetScheduler`.
+
+ homogeneous
+ A multiprocessor computer system composed of a single type of processor.
+
+ I/O
+ This term is an acronym for Input/Output.
+
+ ID
+ An RTEMS assigned identification tag used to access an active object.
+
+ IDLE task
+ A special low priority task which assumes control of the CPU when no
+ other task is able to execute.
+
+ ineligible scheduler
+ An ineligible scheduler of a :term:`task` is a :term:`scheduler` which is
+ not an :term:`eligible scheduler`.
+
+ initial extension sets
+ The initial extension sets are a table of :term:`user extensions`. The table
+ is defined by the application configuration for example through the
+ :ref:`CONFIGURE_INITIAL_EXTENSIONS` application configuration option. The
+ initial extension sets cannot be altered during runtime through directive
+ calls. See also :term:`dynamic extension sets`.
+
+ interface
+ A specification of the methodology used to connect multiple independent
+ subsystems.
+
+ internal address
+ The address used to access dual-ported memory by the node which owns the
+ memory.
+
+ interrupt
+ A hardware facility that causes the CPU to suspend execution, save its
+ status, and transfer control to a specific location.
+
+ 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.
+
+ interrupt service
+ An *interrupt service* consists of an
+ :term:`Interrupt Service Routine` which is called with a user
+ provided argument upon reception of an interrupt service request. The
+ routine is invoked in interrupt context. Interrupt service requests may have
+ a priority and an affinity to a set of processors. An *interrupt service* is
+ a :term:`software component`.
+
+ Interrupt Service Routine
+ An ISR is invoked by the CPU to process a pending interrupt.
+
+ ISR
+ This term is an acronym for :term:`Interrupt Service Routine`.
+
+ ISVV
+ This term is an acronym for Independent Software Verification and Validation.
+
+ kernel
+ In this document, this term is used as a synonym for executive.
+
+ Last In First Out
+ A discipline for manipulating entries in a data structure. See also
+ :term:`First In First Out`.
+
+ LIFO
+ This term is an acronym for :term:`Last In First Out`.
+
+ Linear Temporal Logic
+ This is a logic that states properties about (possibly infinite) sequences of
+ states.
+
+ list
+ A data structure which allows for dynamic addition and removal of
+ entries. It is not statically limited to a particular size.
- message buffer
- A block of memory used to store messages.
+ 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.
- message queue
- An RTEMS object used to synchronize and communicate between tasks by
- transporting messages between sending and receiving tasks.
+ LLVM
+ This term is an acronym for
+ `Low Level Virtual Machine <https://www.llvm.org>`__.
+ The LLVM Project is a collection of modular and reusable compiler and
+ toolchain technologies.
- Message Queue Control Block
- A data structure associated with each message queue used by RTEMS to
- manage that message queue.
+ 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.
- minor number
- A numeric value passed to a device driver, the exact usage of which is
- driver dependent.
+ local operation
+ The manipulation of an object which resides on the same node as the
+ calling task.
- 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.
+ logical address
+ An address used by an application. In a system without memory
+ management, logical addresses will equal physical addresses.
- MPCI
- An acronym for :term:`Multiprocessor Communications Interface Layer`.
+ loosely-coupled
+ A multiprocessor configuration where shared memory is not used for
+ communication.
- multiprocessing
- The simultaneous execution of two or more processes by a multiple
- processor computer system.
+ lower priority
+ A :term:`task` ``L`` has a lower :term:`priority` than a task ``H``, if
+ task ``L`` is less important than task ``H``.
- multiprocessor
- A computer with multiple CPUs available for executing applications.
+ LTL
+ This term is an acronym for :term:`Linear Temporal Logic`.
- Multiprocessor Communications Interface Layer
- A set of user-provided routines which enable the nodes in a
- multiprocessor system to communicate with one another.
+ major number
+ The index of a device driver in the Device Driver Table.
+
+ manager
+ A group of related RTEMS' directives which provide access and control
+ over resources.
+
+ MCS
+ This term is an acronym for Mellor-Crummey Scott.
- Multiprocessor Configuration Table
- The data structure defining the characteristics of the multiprocessor
- target system with which RTEMS will communicate.
+ 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.
+ 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.
+ 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.
+ 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.
+ Message Queue Control Block
+ A data structure associated with each message queue used by RTEMS to
+ manage that message queue.
- non-existent
- The state occupied by an uncreated or deleted task.
-
- NUMA
- An acronym for Non-Uniform Memory Access.
+ minor number
+ A numeric value passed to a device driver, the exact usage of which is
+ driver dependent.
- 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.
+ 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.
- 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.
+ MPCI
+ This term is an acronym for
+ :term:`Multiprocessor Communications Interface Layer`.
- 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.
+ MrsP
+ This term is an acronym for Multiprocessor Resource-Sharing Protocol.
- operating system
- The software which controls all the computer's resources and provides the
- base upon which application programs can be written.
+ multiprocessing
+ The simultaneous execution of two or more processes by a multiple
+ processor computer system.
- overhead
- The portion of the CPUs processing power consumed by the operating
- system.
+ multiprocessor
+ A computer with multiple CPUs available for executing applications.
- packet
- A buffer which contains the messages passed between nodes in a
- multiprocessor system. A packet is the contents of an envelope.
+ Multiprocessor Communications Interface Layer
+ A set of user-provided routines which enable the nodes in a
+ multiprocessor system to communicate with one another.
- partition
- An RTEMS object which is used to allocate and deallocate fixed size
- blocks of memory from an dynamically specified area of memory.
+ Multiprocessor Configuration Table
+ The data structure defining the characteristics of the multiprocessor
+ target system with which RTEMS will communicate.
- partition
- Clusters with a cardinality of one are partitions.
+ 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.
- Partition Control Block
- A data structure associated with each partition used by RTEMS to manage
- that partition.
+ mutual exclusion
+ A term used to describe the act of preventing other tasks from accessing
+ a resource simultaneously.
- pending
- A term used to describe a task blocked waiting for an event, message,
- semaphore, or signal.
+ nested
+ A term used to describe an ASR that occurs during another ASR or an ISR
+ that occurs during another ISR.
- periodic task
- A task which must execute at regular intervals and comply with a hard
- deadline.
+ node
+ A term used to reference a processor running RTEMS in a multiprocessor
+ system.
- physical address
- The actual hardware address of a resource.
+ non-existent
+ The state occupied by an uncreated or deleted task.
- 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.
+ NTP
+ This term is an acronym for
+ `Network Time Protocol <https://en.wikipedia.org/wiki/Network_Time_Protocol>`_.
- pool
- A collection from which resources are allocated.
+ NUMA
+ This term is an acronym for Non-Uniform Memory Access.
- portability
- A term used to describe the ease with which software can be rehosted on
- another computer.
+ 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.
- posting
- The act of sending an event, message, semaphore, or signal to a task.
+ OBC
+ This term is an acronym for On-Board Computer.
- preempt
- The act of forcing a task to relinquish the processor and dispatching to
- another task.
+ 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.
+ 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 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.
+ OMIP
+ This term is an acronym for O(m) Independence-Preserving Protocol. OMIP is a
+ generalization of the :term:`priority inheritance` locking protocol to
+ clustered scheduling. The ``m`` denotes the number of processors in the
+ system.
- 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.
+ OpenMP
+ This term is an acronym for
+ `Open Multi-Processing <https://www.openmp.org/>`_.
+
+ operating system
+ The software which controls all the computer's resources and provides the
+ base upon which application programs can be written.
+
+ overhead
+ The portion of the CPUs processing power consumed by the operating
+ system.
+
+ packet
+ A buffer which contains the messages passed between nodes in a
+ multiprocessor system. A packet is the contents of an envelope.
+
+ partition
+ This term has two definitions:
+
+ 1. A partition is an RTEMS object which is used to allocate and
+ deallocate fixed size blocks of memory from an dynamically specified
+ area of memory.
+
+ 2. A :term:`cluster` with a cardinality of one is a partition.
- 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.
+ Partition Control Block
+ A data structure associated with each partition used by RTEMS to manage
+ that partition.
- processor utilization
- The percentage of processor time used by a task or a set of tasks.
+ PCB
+ This term is an acronym for Period Control Block.
- 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 :term:`Partition Control Block`.
-
- PXCB
- An acronym for :term:`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 :term:`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.
+ pending
+ A term used to describe a task blocked waiting for an event, message,
+ semaphore, or signal.
- 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 :term:`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.
+ periodic task
+ A task which must execute at regular intervals and comply with a hard
+ deadline.
- 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.
+ physical address
+ The actual hardware address of a resource.
+
+ 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.
+
+ portability
+ A term used to describe the ease with which software can be rehosted on
+ another computer.
+
+ POSIX
+ This term is an acronym for
+ `Portable Operating System Interface <https://en.wikipedia.org/wiki/POSIX>`_.
+
+ posting
+ The act of sending an event, message, semaphore, or signal to a task.
+
+ PPS
+ This term is an acronym for
+ `Pulse-Per-Second <https://en.wikipedia.org/wiki/Pulse-per-second_signal>`_.
+
+ preempt
+ The act of forcing a task to relinquish the processor and dispatching to
+ another task.
+
+ priority
+ The priority is a mechanism used to represent the relative importance of an
+ element in a set of items.
+
+ For example, :term:`RTEMS` uses :term:`task priorities <task priority>` to determine which
+ :term:`task` should execute on a processor. In RTEMS, priorities are
+ represented by non-negative integers.
+
+ For the Classic :term:`API`, if a numerical priority value ``A`` is greater
+ than a numerical priority value ``B``, then ``A`` expresses a
+ :term:`lower priority` than ``B``. If a numerical priority value ``C`` is
+ less than a numerical priority value ``D``, then ``C`` expresses a
+ :term:`higher priority` than ``D``.
+
+ For the :term:`POSIX` API, if a numerical priority value ``R`` is less than
+ a numerical priority value ``S``, then ``R`` expresses a lower priority than
+ ``S``. If a numerical priority value ``T`` is greater than a numerical
+ priority value ``U``, then ``T`` expresses a higher priority than ``U``.
+
+ 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. This approach is not used in RTEMS, see also
+ :term:`OMIP`.
+
+ 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.
+
+ 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.
- 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 :term:`Semaphore Control Block`.
-
- SMP
- An acronym for Symmetric Multiprocessing.
-
- 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.
-
- TAS
- An acronym for Test-And-Set.
-
- 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 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.
+ processor utilization
+ The percentage of processor time used by a task or a set of tasks.
- task switch
- Alternate terminology for context switch. Taking control of the
- processor from one task and given to another.
+ proxy
+ An RTEMS control structure used to represent, on a remote node, a task
+ which must block as part of a remote operation.
- TCB
- An acronym for :term:`Task Control Block`.
+ Proxy Control Block
+ A data structure associated with each proxy used by RTEMS to manage that
+ proxy.
- thread
- This term has the same meaning as :term:`task`.
+ PTCB
+ This term is an acronym for :term:`Partition Control Block`.
- thread dispatch
- The thread dispatch transfers control of the processor from the currently
- executing thread to the heir thread of the processor.
+ PXCB
+ This term is an acronym for :term:`Proxy Control Block`.
- 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.
+ QCB
+ This term is an acronym for :term:`Message Queue Control Block`.
+
+ quantum
+ The application defined unit of time in which the processor is allocated.
+
+ queue
+ Alternate term for message queue.
+
+ 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.
+
+ real priority
+ Each :term:`task` has exactly one real priority. The real priority is
+ always with respect to the :term:`home scheduler` of a task. It is defined
+ during task initialization. It may be changed by directives such as
+ :ref:`InterfaceRtemsTaskSetPriority` and
+ :ref:`InterfaceRtemsTaskSetScheduler`. The real priority is the foundation
+ of the :term:`current priority`.
+
+ 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.
+
+ refinement
+ A *refinement* is a relationship between a specification and its
+ implementation as code.
+
+ 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.
+
+ reification
+ Another term used to denote :term:`refinement`.
+
+ 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.
+
+ ReqIF
+ This term is an acronym for
+ `Requirements Interchange Format <https://www.omg.org/spec/ReqIF/About-ReqIF/>`_.
+
+ 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
+ This term has the same meaning as :term:`status code`.
+
+ return value
+ The value returned by a function. A return value may be a
+ :term:`status code`.
+
+ RNCB
+ This term is an acronym for :term:`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.
+
+ RTEMS
+ This term is an acronym for Real-Time Executive for Multiprocessor Systems.
+
+ RTEMS epoch
+ The RTEMS epoch is a point in time. It is 1988-01-01T00:00:00Z in
+ `ISO 8601 <https://en.wikipedia.org/wiki/ISO_8601>`_ time format.
+
+ 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.
+
+ scenario
+ In the context of formal verification, in a setting that involves many
+ concurrent tasks that interleave in arbitrary ways, a scenario describes a
+ single specific possible interleaving. One interpretation of the behaviour
+ of a concurrent system is the set of all its scenarios.
+
+ 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.
- tightly-coupled
- A multiprocessor configuration system which communicates via shared
- memory.
+ 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.
- 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.
+ 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.
- timer
- An RTEMS object used to invoke subprograms at a later time.
+ A scheduler is either an :term:`eligible scheduler` or a
+ :term:`ineligible scheduler` for a task. An :term:`eligible scheduler` is
+ either the :term:`home scheduler` or a :term:`helping scheduler` for a
+ task.
- Timer Control Block
- A data structure associated with each timer used by RTEMS to manage that
- timer.
+ 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`.
- 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.
+ segments
+ Variable sized memory blocks allocated from a region.
- timeslice
- The application defined unit of time in which the processor is allocated.
+ semantics
+ This term refers to the meaning of text or utterances in some language. In a
+ software engineering context these will be programming, modelling or
+ specification languages.
- 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`.
+ semaphore
+ An RTEMS object which is used to synchronize tasks and provide mutually
+ exclusive access to resources.
- TMCB
- An acronym for :term:`Timer Control Block`.
+ Semaphore Control Block
+ A data structure associated with each semaphore used by RTEMS to manage
+ that semaphore.
- 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.
+ shared memory
+ Memory which is accessible by multiple nodes in a multiprocessor system.
- TTAS
- An acronym for Test and Test-And-Set.
+ 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.
- user extensions
- Software routines provided by the application to enhance the
- functionality of RTEMS.
+ 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.
- User Extension Table
- A table which contains the entry points for each user extensions.
+ SIS
+ This term is an acronym for Simple Instruction Simulator. The SIS is a
+ :term:`SPARC` V7/V8 and RISC-V RV32IMACFD :term:`target architecture` simulator.
- User Initialization Tasks Table
- A table which contains the information needed to create and start each of
- the user initialization tasks.
+ SMCB
+ This term is an acronym for :term:`Semaphore Control Block`.
+
+ SMP
+ This term is an acronym for Symmetric Multiprocessing.
+
+ 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.
+
+ 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.
+
+ soft real-time system
+ A real-time system in which a missed deadline does not compromise the
+ integrity of the system.
+
+ software component
+ This term is defined by ECSS-E-ST-40C 3.2.28 as a "part of a software
+ system". For this project a *software component* shall be any of the
+ following items and nothing else:
+
+ * :term:`software unit`
+
+ * explicitly defined :term:`ELF` symbol in a
+ :term:`source code` file
+
+ * :term:`assembler language` data in a source code file
+
+ * :term:`C language` object with static storage duration
+
+ * C language object with thread-local storage duration
+
+ * :term:`thread`
+
+ * :term:`interrupt service`
+
+ * collection of *software components* (this is a software architecture
+ element)
+
+ Please note that explicitly defined ELF symbols and assembler language
+ data are considered a software component only if they are defined in a
+ :term:`source code` file. For example, this rules out symbols
+ and data generated as side-effects by the toolchain (compiler, assembler,
+ linker) such as jump tables, linker trampolines, exception frame information,
+ etc.
+
+ software item
+ This term has the same meaning as :term:`software product`.
+
+ software product
+ The *software product* is the :term:`RTEMS` real-time operating system.
+
+ software unit
+ This term is defined by ECSS-E-ST-40C 3.2.24 as a "separately compilable
+ piece of source code". For this project a *software unit* shall be any of
+ the following items and nothing else:
+
+ * :term:`assembler language` function in a
+ :term:`source code` file
+
+ * :term:`C language` function (external and internal linkage)
+
+ A *software unit* is a :term:`software component`.
+
+ source code
+ This project uses the *source code* definition of the
+ `Linux Information Project <http://www.linfo.org/source_code.html>`_:
+ "Source code (also referred to as source or code) is the version of
+ software as it is originally written (i.e., typed into a computer) by a
+ human in plain text (i.e., human readable alphanumeric characters)."
+
+ SPARC
+ This term is an acronym for
+ `Scalable Processor ARChitecture <https://en.wikipedia.org/wiki/SPARC>`_.
+ See also :term:`target architecture`.
+
+ 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
+ A status code indicates the completion status of an operation. For
+ example most RTEMS directives return a status code through the
+ :term:`return value` to indicate a successful operation or error
+ conditions.
+
+ Strong APA
+ Strong APA is a specialization of :term:`APA`. Schedulers which implement
+ strong APA recursively searches for a processor in the :term:`thread`'s
+ affinity set, whenever a thread becomes ready for execution, followed by the
+ processors in the affinity set of threads that are assigned the processor
+ present in the ready thread's affinity set. This is done to find a thread to
+ processor mapping that does not violate the priority ordering and to provide
+ a thread to processor mapping with a higher total priority of the threads
+ allocated a processor. Similar analysis is done when a thread blocks. See
+ also :cite:`Cerqueira:2014:LPA`.
+
+ 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.
+
+ system-on-chip
+ This project uses the `system on a chip definition of Wikipedia
+ <https://en.wikipedia.org/wiki/System_on_a_chip>`_: "A system on a chip or
+ system-on-chip is an integrated circuit that integrates most or all
+ components of a computer or other electronic system."
- user-provided
- These terms are used to designate any software routines which must be
- written by the application designer.
+ Systems on a chip are :term:`target` systems for applications using
+ :term:`RTEMS`.
+
+ target
+ The system on which the application will ultimately execute.
+
+ target architecture
+ The target architecture is the instruction set architecture (ISA) of the
+ :term:`target`. Some RTEMS features depend on the target architecture. For
+ the details consult the *RTEMS CPU Architecture Supplement*.
+
+ TAS
+ This term is an acronym for Test-And-Set.
+
+ task
+ This project uses the
+ `thread definition of Wikipedia <https://en.wikipedia.org/wiki/Thread_(computing)>`_:
+ "a thread of execution is the smallest sequence of programmed
+ instructions that can be managed independently by a scheduler, which is
+ typically a part of the operating system."
+
+ 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
+ :term:`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.
+
+ A *task* is a :term:`software component`.
+
+ Task Control Block
+ A data structure associated with each task used by RTEMS to manage that
+ task.
+
+ task entry
+ The task entry is invoked to execute the task's job. Before the task entry
+ is invoked, the thread begin :term:`user extensions` run in the context of
+ the task. After the return of the task entry, the thread exitted user
+ extensions run in the context of the task. The first user initialization
+ task performs the :term:`global construction` after running the thread begin
+ extensions and before the task entry is invoked. See also
+ :ref:`InterfaceRtemsTaskStart`.
+
+ task migration
+ Task migration happens in case a task stops execution on one processor
+ and resumes execution on another processor.
+
+ task priority
+ A task :term:`priority` of a :term:`task` determines its importance
+ relative to other tasks.
+
+ The scheduler use task priorities to determine which :term:`ready task` gets
+ a processor allocated, see :term:`scheduled task`. The
+ :term:`eligible priorities <eligible priority>` of a task define the position of the task in a
+ :term:`wait queue` which uses the priority discipline. Each task has at
+ least the :term:`real priority`.
+
+ Task priorities are used in :term:`wait queues <wait queue>` which use the priority
+ discipline to determine the dequeueing order of tasks.
+
+ 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
+ This term is an acronym for :term:`Task Control Block`.
+
+ thread
+ This term has the same meaning as :term:`task`.
+
+ 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.
+
+ timeslice
+ The application defined unit of time in which the processor is allocated.
+
+ 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.
+
+ TLS
+ This term is 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
+ This term is an acronym for :term:`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.
+
+ TTAS
+ This term is an acronym for Test and Test-And-Set.
+
+ Unix epoch
+ The Unix epoch is a point in time. It is 1970-01-01T00:00:00Z in
+ `ISO 8601 <https://en.wikipedia.org/wiki/ISO_8601>`_ time format.
+
+ User Extension Table
+ A table which contains the entry points for each user extensions.
+
+ user extensions
+ User extensions are software routines provided by the application to enhance
+ the functionality of RTEMS. An active user extension is either in the
+ :term:`initial extension sets` or the :term:`dynamic extension sets`. User
+ extensions are invoked in :term:`extension forward order` or
+ :term:`extension reverse order`.
+
+ User Initialization Tasks Table
+ A table which contains the information needed to create and start each of
+ the user initialization tasks.
+
+ user-provided
+ These terms are used to designate any software routines which must be
+ written by the application designer.
+
+ user-supplied
+ This term has the same meaning as :term:`user-provided`.
- user-supplied
- This term has the same meaning as :term:`user-provided`.
+ vector
+ Memory pointers used by the processor to fetch the address of routines
+ which will handle various exceptions and interrupts.
- 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.
- 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.
+ Weak APA
+ Weak APA is a specialization of :term:`APA`. This refers to Linux's push
+ and pull implementation of APA model. When a :term:`thread` becomes ready
+ for execution, it is allocated a processor if there is an idle processor, or
+ a processor executing a lower priority thread in its affinity set. Unlike
+ :term:`Strong APA`, no thread is migrated from its processor to find a thread
+ to processor mapping. See also :cite:`Cerqueira:2014:LPA`.
+
+ YAML
+ This term is an acronym for `YAML Ain't Markup Language <https://yaml.org/>`_.
- yield
- When a task voluntarily releases control of the processor.
+ yield
+ When a task voluntarily releases control of the processor.