diff options
Diffstat (limited to 'c-user/glossary.rst')
-rw-r--r-- | c-user/glossary.rst | 267 |
1 files changed, 256 insertions, 11 deletions
diff --git a/c-user/glossary.rst b/c-user/glossary.rst index 71a0242..2516e90 100644 --- a/c-user/glossary.rst +++ b/c-user/glossary.rst @@ -1,7 +1,8 @@ .. 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) 2017, 2021 embedded brains GmbH (http://www.embedded-brains.de) +.. Copyright (C) 2015, 2023 embedded brains GmbH & Co. KG .. Copyright (C) 1988, 1998 On-Line Applications Research Corporation (OAR) Glossary @@ -17,6 +18,9 @@ Glossary A term used to describe an object which has been created by an application. + AMP + This term is an acronym for Asymmetric Multiprocessing. + 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 @@ -101,9 +105,21 @@ Glossary 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 @@ -194,6 +210,14 @@ Glossary 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 @@ -233,13 +257,28 @@ Glossary 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. @@ -286,6 +325,26 @@ Glossary 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. @@ -294,16 +353,29 @@ Glossary This term is an acronym for :term:`First In First Out`. First In First Out - A discipline for manipulating entries in a data structure. + 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/>`_. @@ -311,6 +383,10 @@ Glossary 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`. @@ -318,6 +394,30 @@ Glossary 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 @@ -340,6 +440,11 @@ Glossary 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 @@ -348,11 +453,15 @@ Glossary 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 a - :term:`eligible scheduler` and which is assigned to the task during the + 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 - :c:func:`rtems_task_set_scheduler`. + :ref:`InterfaceRtemsTaskSetScheduler`. homogeneous A multiprocessor computer system composed of a single type of processor. @@ -371,6 +480,13 @@ Glossary 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. @@ -408,6 +524,17 @@ Glossary 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. @@ -417,6 +544,12 @@ Glossary are arranged such that the least significant byte is at the lowest address. + 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. + 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 @@ -434,6 +567,13 @@ Glossary A multiprocessor configuration where shared memory is not used for communication. + lower priority + A :term:`task` ``L`` has a lower :term:`priority` than a task ``H``, if + task ``L`` is less important than task ``H``. + + LTL + This term is an acronym for :term:`Linear Temporal Logic`. + major number The index of a device driver in the Device Driver Table. @@ -475,6 +615,9 @@ Glossary This term is an acronym for :term:`Multiprocessor Communications Interface Layer`. + MrsP + This term is an acronym for Multiprocessor Resource-Sharing Protocol. + multiprocessing The simultaneous execution of two or more processes by a multiple processor computer system. @@ -522,6 +665,9 @@ Glossary mathematically intensive situations. It is typically viewed as a logical extension of the primary processor. + OBC + This term is an acronym for On-Board Computer. + object In this document, this term is used to refer collectively to tasks, timers, message queues, partitions, regions, semaphores, ports, and rate @@ -532,6 +678,16 @@ Glossary variety of entities. Object-oriented systems shield the application from implementation details. + 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. + + 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. @@ -599,15 +755,30 @@ Glossary another task. 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. + 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, the pseudo-interrupt priority. + 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 @@ -653,6 +824,14 @@ Glossary 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 @@ -663,6 +842,10 @@ Glossary 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. @@ -675,6 +858,9 @@ Glossary 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. @@ -722,6 +908,12 @@ Glossary 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. @@ -758,6 +950,11 @@ Glossary segments Variable sized memory blocks allocated from a region. + 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. + semaphore An RTEMS object which is used to synchronize tasks and provide mutually exclusive access to resources. @@ -778,6 +975,10 @@ Glossary A thirty-two bit entity which is used to represent a task's collection of pending signals and the signals sent to a task. + 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. + SMCB This term is an acronym for :term:`Semaphore Control Block`. @@ -855,6 +1056,11 @@ Glossary 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 @@ -892,9 +1098,23 @@ Glossary 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." + + 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. @@ -917,10 +1137,32 @@ Glossary 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. @@ -991,8 +1233,11 @@ Glossary A table which contains the entry points for each user extensions. user extensions - Software routines provided by the application to enhance the - functionality of RTEMS. + 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 |