diff options
Diffstat (limited to 'c-user/glossary.rst')
-rw-r--r-- | c-user/glossary.rst | 1884 |
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. |