source: rtems-docs/c-user/glossary.rst @ 7d05a3d

5
Last change on this file since 7d05a3d was 7d05a3d, checked in by Sebastian Huber <sebastian.huber@…>, on 02/27/20 at 13:51:05

eng: Add glossary

Update #3853.

  • Property mode set to 100644
File size: 29.2 KB
Line 
1.. SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. Copyright (C) 2017, 2019 embedded brains GmbH (http://www.embedded-brains.de)
4.. Copyright (C) 1988, 1998 On-Line Applications Research Corporation (OAR)
5
6Glossary
7********
8
9.. glossary::
10    :sorted:
11
12    ABI
13        An acronym for Application Binary Interface.
14
15    active
16        A term used to describe an object which has been created by an
17        application.
18
19    aperiodic task
20        A task which must execute only at irregular intervals and has only a soft
21        deadline.
22
23    API
24        An acronym for Application Programming Interface.
25
26    application
27        In this document, software which makes use of RTEMS.
28
29    ASR
30        An acronym for :term:`Asynchronous Signal Routine`.
31
32    asynchronous
33        Not related in order or timing to other occurrences in the system.
34
35    Asynchronous Signal Routine
36        Similar to a hardware interrupt except that it is associated with a task
37        and is run in the context of a task.  The directives provided by the
38        signal manager are used to service signals.
39
40    atomic operations
41        Atomic operations are defined in terms of :term:`C11`.
42
43    awakened
44        A term used to describe a task that has been unblocked and may be
45        scheduled to the CPU.
46
47    big endian
48        A data representation scheme in which the bytes composing a numeric value
49        are arranged such that the most significant byte is at the lowest
50        address.
51
52    bit-mapped
53        A data encoding scheme in which each bit in a variable is used to
54        represent something different.  This makes for compact data
55        representation.
56
57    block
58        A physically contiguous area of memory.
59
60    blocked task
61        The task state entered by a task which has been previously started and
62        cannot continue execution until the reason for waiting has been
63        satisfied.  Blocked tasks are not an element of the set of ready tasks of
64        a scheduler instance.
65
66    Board Support Package
67        A collection of device initialization and control routines specific to a
68        particular type of board or collection of boards.
69
70    broadcast
71        To simultaneously send a message to a logical set of destinations.
72
73    BSP
74        An acronym for :term:`Board Support Package`.
75
76    buffer
77        A fixed length block of memory allocated from a partition.
78
79    C++11
80        The standard ISO/IEC 14882:2011.
81
82    C11
83        The standard ISO/IEC 9899:2011.
84
85    calling convention
86        The processor and compiler dependent rules which define the mechanism
87        used to invoke subroutines in a high-level language.  These rules define
88        the passing of arguments, the call and return mechanism, and the register
89        set which must be preserved.
90
91    CCB
92        An acronym for Change Control Board.
93
94    Central Processing Unit
95        This term is equivalent to the terms processor and microprocessor.
96
97    chain
98        A data structure which allows for efficient dynamic addition and removal
99        of elements.  It differs from an array in that it is not limited to a
100        predefined size.
101
102    cluster
103        We have clustered scheduling in case the set of processors of a system is
104        partitioned into non-empty pairwise disjoint subsets.  These subsets are
105        called clusters.  Clusters with a cardinality of one are partitions.
106        Each cluster is owned by exactly one scheduler instance.
107
108    coalesce
109        The process of merging adjacent holes into a single larger hole.
110        Sometimes this process is referred to as garbage collection.
111
112    Configuration Table
113        A table which contains information used to tailor RTEMS for a particular
114        application.
115
116    context
117        All of the processor registers and operating system data structures
118        associated with a task.
119
120    context switch
121        Alternate term for task switch.  Taking control of the processor from one
122        task and transferring it to another task.
123
124    control block
125        A data structure used by the executive to define and control an object.
126
127    core
128        When used in this manual, this term refers to the internal executive
129        utility functions.  In the interest of application portability, the core
130        of the executive should not be used directly by applications.
131
132    CPU
133        An acronym for :term:`Central Processing Unit`.
134
135    critical section
136        A section of code which must be executed indivisibly.
137
138    CRT
139        An acronym for Cathode Ray Tube.  Normally used in reference to the
140        man-machine interface.
141
142    deadline
143        A fixed time limit by which a task must have completed a set of actions.
144        Beyond this point, the results are of reduced value and may even be
145        considered useless or harmful.
146
147    device
148        A peripheral used by the application that requires special operation
149        software.  See also device driver.
150
151    device driver
152        Control software for special peripheral devices used by the application.
153
154    Device Driver Table
155        A table which contains the entry points for each of the configured device
156        drivers.
157
158    directives
159        RTEMS' provided routines that provide support mechanisms for real-time
160        applications.
161
162    dispatch
163        The act of loading a task's context onto the CPU and transferring control
164        of the CPU to that task.
165
166    Doorstop
167        `Doorstop <https://github.com/doorstop-dev/doorstop>`_ is a
168        requirements management tool.
169
170    dormant
171        The state entered by a task after it is created and before it has been
172        started.
173
174    dual-ported
175        A term used to describe memory which can be accessed at two different
176        addresses.
177
178    EARS
179        An acronym for Easy Approach to Requirements Syntax.
180
181    embedded
182        An application that is delivered as a hidden part of a larger system.
183        For example, the software in a fuel-injection control system is an
184        embedded application found in many late-model automobiles.
185
186    entry point
187        The address at which a function or task begins to execute.  In C, the
188        entry point of a function is the function's name.
189
190    envelope
191        A buffer provided by the MPCI layer to RTEMS which is used to pass
192        messages between nodes in a multiprocessor system.  It typically contains
193        routing information needed by the MPCI.  The contents of an envelope are
194        referred to as a packet.
195
196    error code
197        This term has the same meaning as :term:`status code`.
198
199    events
200        A method for task communication and synchronization. The directives
201        provided by the event manager are used to service events.
202
203    exception
204        A synonym for interrupt.
205
206    executing task
207        The task state entered by a task after it has been given control of the
208        processor.  In SMP configurations, a task may be registered as executing
209        on more than one processor for short time frames during task migration.
210        Blocked tasks can be executing until they issue a thread dispatch.
211
212    executive
213        In this document, this term is used to referred to RTEMS.  Commonly, an
214        executive is a small real-time operating system used in embedded systems.
215
216    exported
217        An object known by all nodes in a multiprocessor system.  An object
218        created with the GLOBAL attribute will be exported.
219
220    external address
221        The address used to access dual-ported memory by all the nodes in a
222        system which do not own the memory.
223
224    FIFO
225        An acronym for :term:`First In First Out`.
226
227    First In First Out
228        A discipline for manipulating entries in a data structure.
229
230    floating point coprocessor
231        A component used in computer systems to enhance performance in
232        mathematically intensive situations.  It is typically viewed as a logical
233        extension of the primary processor.
234
235    freed
236        A resource that has been released by the application to RTEMS.
237
238    GCC
239        An acronym for `GNU Compiler Collection <https://gcc.gnu.org/>`_.
240
241    global
242        An object that has been created with the GLOBAL attribute and exported to
243        all nodes in a multiprocessor system.
244
245    GNAT
246        *GNAT* is the :term:`GNU` compiler for Ada, integrated into the
247        :term:`GCC`.
248
249    GNU
250        An acronym for `GNU's Not Unix <https://www.gnu.org/>`_.
251
252    handler
253        The equivalent of a manager, except that it is internal to RTEMS and
254        forms part of the core.  A handler is a collection of routines which
255        provide a related set of functions.  For example, there is a handler used
256        by RTEMS to manage all objects.
257
258    hard real-time system
259        A real-time system in which a missed deadline causes the worked performed
260        to have no value or to result in a catastrophic effect on the integrity
261        of the system.
262
263    heap
264        A data structure used to dynamically allocate and deallocate variable
265        sized blocks of memory.
266
267    heir task
268        A task is an heir if it is registered as an heir in a processor of the
269        system.  A task can be the heir on at most one processor in the system.
270        In case the executing and heir tasks differ on a processor and a thread
271        dispatch is marked as necessary, then the next thread dispatch will make
272        the heir task the executing task.
273
274    heterogeneous
275        A multiprocessor computer system composed of dissimilar processors.
276
277    homogeneous
278        A multiprocessor computer system composed of a single type of processor.
279
280    I/O
281        An acronym for Input/Output.
282
283    ID
284        An RTEMS assigned identification tag used to access an active object.
285
286    IDLE task
287        A special low priority task which assumes control of the CPU when no
288        other task is able to execute.
289
290    interface
291        A specification of the methodology used to connect multiple independent
292        subsystems.
293
294    internal address
295        The address used to access dual-ported memory by the node which owns the
296        memory.
297
298    interrupt
299        A hardware facility that causes the CPU to suspend execution, save its
300        status, and transfer control to a specific location.
301
302    interrupt level
303        A mask used to by the CPU to determine which pending interrupts should be
304        serviced.  If a pending interrupt is below the current interrupt level,
305        then the CPU does not recognize that interrupt.
306
307    Interrupt Service Routine
308        An ISR is invoked by the CPU to process a pending interrupt.
309
310    ISR
311        An acronym for :term:`Interrupt Service Routine`.
312
313    ISVV
314        An acronym for Independent Software Verification and Validation.
315
316    kernel
317        In this document, this term is used as a synonym for executive.
318
319    list
320        A data structure which allows for dynamic addition and removal of
321        entries.  It is not statically limited to a particular size.
322
323    little endian
324        A data representation scheme in which the bytes composing a numeric value
325        are arranged such that the least significant byte is at the lowest
326        address.
327
328    local
329        An object which was created with the LOCAL attribute and is accessible
330        only on the node it was created and resides upon.  In a single processor
331        configuration, all objects are local.
332
333    local operation
334        The manipulation of an object which resides on the same node as the
335        calling task.
336
337    logical address
338        An address used by an application.  In a system without memory
339        management, logical addresses will equal physical addresses.
340
341    loosely-coupled
342        A multiprocessor configuration where shared memory is not used for
343        communication.
344
345    major number
346        The index of a device driver in the Device Driver Table.
347
348    manager
349        A group of related RTEMS' directives which provide access and control
350        over resources.
351
352    MCS
353        An acronym for Mellor-Crummey Scott.
354
355    memory pool
356        Used interchangeably with heap.
357
358    message
359        A sixteen byte entity used to communicate between tasks.  Messages are
360        sent to message queues and stored in message buffers.
361
362    message buffer
363        A block of memory used to store messages.
364
365    message queue
366        An RTEMS object used to synchronize and communicate between tasks by
367        transporting messages between sending and receiving tasks.
368
369    Message Queue Control Block
370        A data structure associated with each message queue used by RTEMS to
371        manage that message queue.
372
373    minor number
374        A numeric value passed to a device driver, the exact usage of which is
375        driver dependent.
376
377    mode
378        An entry in a task's control block that is used to determine if the task
379        allows preemption, timeslicing, processing of signals, and the interrupt
380        disable level used by the task.
381
382    MPCI
383        An acronym for :term:`Multiprocessor Communications Interface Layer`.
384
385    multiprocessing
386        The simultaneous execution of two or more processes by a multiple
387        processor computer system.
388
389    multiprocessor
390        A computer with multiple CPUs available for executing applications.
391
392    Multiprocessor Communications Interface Layer
393        A set of user-provided routines which enable the nodes in a
394        multiprocessor system to communicate with one another.
395
396    Multiprocessor Configuration Table
397        The data structure defining the characteristics of the multiprocessor
398        target system with which RTEMS will communicate.
399
400    multitasking
401        The alternation of execution amongst a group of processes on a single
402        CPU.  A scheduling algorithm is used to determine which process executes
403        at which time.
404
405    mutual exclusion
406        A term used to describe the act of preventing other tasks from accessing
407        a resource simultaneously.
408
409    nested
410        A term used to describe an ASR that occurs during another ASR or an ISR
411        that occurs during another ISR.
412
413    node
414        A term used to reference a processor running RTEMS in a multiprocessor
415        system.
416
417    non-existent
418        The state occupied by an uncreated or deleted task.
419
420    NUMA
421        An acronym for Non-Uniform Memory Access.
422
423    numeric coprocessor
424        A component used in computer systems to enhance performance in
425        mathematically intensive situations.  It is typically viewed as a logical
426        extension of the primary processor.
427
428    object
429        In this document, this term is used to refer collectively to tasks,
430        timers, message queues, partitions, regions, semaphores, ports, and rate
431        monotonic periods.  All RTEMS objects have IDs and user-assigned names.
432
433    object-oriented
434        A term used to describe systems with common mechanisms for utilizing a
435        variety of entities.  Object-oriented systems shield the application from
436        implementation details.
437
438    operating system
439        The software which controls all the computer's resources and provides the
440        base upon which application programs can be written.
441
442    overhead
443        The portion of the CPUs processing power consumed by the operating
444        system.
445
446    packet
447        A buffer which contains the messages passed between nodes in a
448        multiprocessor system.  A packet is the contents of an envelope.
449
450    partition
451        This term has two definitions:
452
453        1. A partition is an RTEMS object which is used to allocate and
454           deallocate fixed size blocks of memory from an dynamically specified
455           area of memory.
456
457        2. A :term:`cluster` with a cardinality of one is a partition.
458
459    Partition Control Block
460        A data structure associated with each partition used by RTEMS to manage
461        that partition.
462
463    pending
464        A term used to describe a task blocked waiting for an event, message,
465        semaphore, or signal.
466
467    periodic task
468        A task which must execute at regular intervals and comply with a hard
469        deadline.
470
471    physical address
472        The actual hardware address of a resource.
473
474    poll
475        A mechanism used to determine if an event has occurred by periodically
476        checking for a particular status.  Typical events include arrival of
477        data, completion of an action, and errors.
478
479    pool
480        A collection from which resources are allocated.
481
482    portability
483        A term used to describe the ease with which software can be rehosted on
484        another computer.
485
486    posting
487        The act of sending an event, message, semaphore, or signal to a task.
488
489    preempt
490        The act of forcing a task to relinquish the processor and dispatching to
491        another task.
492
493    priority
494        A mechanism used to represent the relative importance of an element in a
495        set of items.  RTEMS uses priority to determine which task should
496        execute.
497
498    priority boosting
499        A simple approach to extend the priority inheritance protocol for
500        clustered scheduling is priority boosting.  In case a mutex is owned by a
501        task of another cluster, then the priority of the owner task is raised to
502        an artificially high priority, the pseudo-interrupt priority.
503
504    priority inheritance
505        An algorithm that calls for the lower priority task holding a resource to
506        have its priority increased to that of the highest priority task blocked
507        waiting for that resource.  This avoids the problem of priority
508        inversion.
509
510    priority inversion
511        A form of indefinite postponement which occurs when a high priority tasks
512        requests access to shared resource currently allocated to low priority
513        task.  The high priority task must block until the low priority task
514        releases the resource.
515
516    processor utilization
517        The percentage of processor time used by a task or a set of tasks.
518
519    proxy
520        An RTEMS control structure used to represent, on a remote node, a task
521        which must block as part of a remote operation.
522
523    Proxy Control Block
524        A data structure associated with each proxy used by RTEMS to manage that
525        proxy.
526
527    PTCB
528        An acronym for :term:`Partition Control Block`.
529
530    PXCB
531        An acronym for :term:`Proxy Control Block`.
532
533    QCB
534        An acronym for :term:`Message Queue Control Block`.
535
536    quantum
537        The application defined unit of time in which the processor is allocated.
538
539    queue
540        Alternate term for message queue.
541
542    ready task
543        A task occupies this state when it is available to be given control of a
544        processor.  A ready task has no processor assigned.  The scheduler
545        decided that other tasks are currently more important.  A task that is
546        ready to execute and has a processor assigned is called scheduled.
547
548    real-time
549        A term used to describe systems which are characterized by requiring
550        deterministic response times to external stimuli.  The external stimuli
551        require that the response occur at a precise time or the response is
552        incorrect.
553
554    reentrant
555        A term used to describe routines which do not modify themselves or global
556        variables.
557
558    region
559        An RTEMS object which is used to allocate and deallocate variable size
560        blocks of memory from a dynamically specified area of memory.
561
562    Region Control Block
563        A data structure associated with each region used by RTEMS to manage that
564        region.
565
566    registers
567        Registers are locations physically located within a component, typically
568        used for device control or general purpose storage.
569
570    remote
571        Any object that does not reside on the local node.
572
573    remote operation
574        The manipulation of an object which does not reside on the same node as
575        the calling task.
576
577    ReqIF
578        An acronym for
579        `Requirements Interchange Format <https://www.omg.org/spec/ReqIF/About-ReqIF/>`_.
580
581    resource
582        A hardware or software entity to which access must be controlled.
583
584    resume
585        Removing a task from the suspend state.  If the task's state is ready
586        following a call to the ``rtems_task_resume`` directive, then the task is
587        available for scheduling.
588
589    return code
590        This term has the same meaning as :term:`status code`.
591
592    return value
593        The value returned by a function.  A return value may be a
594        :term:`status code`.
595
596    RNCB
597        An acronym for :term:`Region Control Block`.
598
599    round-robin
600        A task scheduling discipline in which tasks of equal priority are
601        executed in the order in which they are made ready.
602
603    RS-232
604        A standard for serial communications.
605
606    RTEMS
607        An acronym for Real-Time Executive for Multiprocessor Systems.
608
609    running
610        The state of a rate monotonic timer while it is being used to delineate a
611        period.  The timer exits this state by either expiring or being canceled.
612
613    schedulable
614        A set of tasks which can be guaranteed to meet their deadlines based upon
615        a specific scheduling algorithm.
616
617    schedule
618        The process of choosing which task should next enter the executing state.
619
620    scheduled task
621        A task is scheduled if it is allowed to execute and has a processor
622        assigned.  Such a task executes currently on a processor or is about to
623        start execution.  A task about to start execution it is an heir task on
624        exactly one processor in the system.
625
626    scheduler
627        A scheduler or scheduling algorithm allocates processors to a subset of
628        its set of ready tasks.  So it manages access to the processor resource.
629        Various algorithms exist to choose the tasks allowed to use a processor
630        out of the set of ready tasks.  One method is to assign each task a
631        priority number and assign the tasks with the lowest priority number to
632        one processor of the set of processors owned by a scheduler instance.
633
634    scheduler instance
635        A scheduler instance is a scheduling algorithm with a corresponding
636        context to store its internal state.  Each processor in the system is
637        owned by at most one scheduler instance.  The processor to scheduler
638        instance assignment is determined at application configuration time.  See
639        :ref:`Configuring a System`.
640
641    segments
642        Variable sized memory blocks allocated from a region.
643
644    semaphore
645        An RTEMS object which is used to synchronize tasks and provide mutually
646        exclusive access to resources.
647
648    Semaphore Control Block
649        A data structure associated with each semaphore used by RTEMS to manage
650        that semaphore.
651
652    shared memory
653        Memory which is accessible by multiple nodes in a multiprocessor system.
654
655    signal
656        An RTEMS provided mechanism to communicate asynchronously with a task.
657        Upon reception of a signal, the ASR of the receiving task will be
658        invoked.
659
660    signal set
661        A thirty-two bit entity which is used to represent a task's collection of
662        pending signals and the signals sent to a task.
663
664    SMCB
665        An acronym for :term:`Semaphore Control Block`.
666
667    SMP
668        An acronym for Symmetric Multiprocessing.
669
670    SMP barriers
671        The SMP barriers ensure that a defined set of independent threads of
672        execution on a set of processors reaches a common synchronization point
673        in time.  They are implemented using atomic operations.  Currently a
674        sense barrier is used in RTEMS.
675
676    SMP locks
677        The SMP locks ensure mutual exclusion on the lowest level and are a
678        replacement for the sections of disabled interrupts.  Interrupts are
679        usually disabled while holding an SMP lock.  They are implemented using
680        atomic operations.  Currently a ticket lock is used in RTEMS.
681
682    soft real-time system
683        A real-time system in which a missed deadline does not compromise the
684        integrity of the system.
685
686    software item
687        This term has the same meaning as :term:`software product`.
688
689    software product
690        The *software product* is the :term:`RTEMS` real-time operating system.
691
692    source code
693        This project uses the *source code* definition of the
694        `Linux Information Project <http://www.linfo.org/source_code.html>`_:
695        "Source code (also referred to as source or code) is the version of
696        software as it is originally written (i.e., typed into a computer) by a
697        human in plain text (i.e., human readable alphanumeric characters)."
698
699    sporadic task
700        A task which executes at irregular intervals and must comply with a hard
701        deadline.  A minimum period of time between successive iterations of the
702        task can be guaranteed.
703
704    stack
705        A data structure that is managed using a Last In First Out (LIFO)
706        discipline.  Each task has a stack associated with it which is used to
707        store return information and local variables.
708
709    status code
710        A status code indicates the completion status of an operation.  For
711        example most RTEMS directives return a status code through the
712        :term:`return value` to indicate a successful operation or error
713        conditions.
714
715    suspend
716        A term used to describe a task that is not competing for the CPU because it
717        has had a ``rtems_task_suspend`` directive.
718
719    synchronous
720        Related in order or timing to other occurrences in the system.
721
722    system call
723        In this document, this is used as an alternate term for directive.
724
725    target
726        The system on which the application will ultimately execute.
727
728    TAS
729        An acronym for Test-And-Set.
730
731    task
732        A logically complete thread of execution.  It consists normally of a set
733        of registers and a stack.  The scheduler assigns processors to a subset
734        of the ready tasks.  The terms task and thread are synonym in RTEMS.  The
735        term task is used throughout the Classic API, however, internally in the
736        operating system implementation and the POSIX API the term thread is
737        used.
738
739    Task Control Block
740        A data structure associated with each task used by RTEMS to manage that
741        task.
742
743    task migration
744        Task migration happens in case a task stops execution on one processor
745        and resumes execution on another processor.
746
747    task processor affinity
748        The set of processors on which a task is allowed to execute.
749
750    task switch
751        Alternate terminology for context switch.  Taking control of the
752        processor from one task and given to another.
753
754    TCB
755        An acronym for :term:`Task Control Block`.
756
757    thread
758        This term has the same meaning as :term:`task`.
759
760    thread dispatch
761        The thread dispatch transfers control of the processor from the currently
762        executing thread to the heir thread of the processor.
763
764    tick
765        The basic unit of time used by RTEMS.  It is a user-configurable number
766        of microseconds.  The current tick expires when a clock tick directive is
767        invoked.
768
769    tightly-coupled
770        A multiprocessor configuration system which communicates via shared
771        memory.
772
773    timeout
774        An argument provided to a number of directives which determines the
775        maximum length of time an application task is willing to wait to acquire
776        the resource if it is not immediately available.
777
778    timer
779        An RTEMS object used to invoke subprograms at a later time.
780
781    Timer Control Block
782        A data structure associated with each timer used by RTEMS to manage that
783        timer.
784
785    timeslice
786        The application defined unit of time in which the processor is allocated.
787
788    timeslicing
789        A task scheduling discipline in which tasks of equal priority are
790        executed for a specific period of time before being preempted by another
791        task.
792
793    TLS
794        An acronym for Thread-Local Storage :cite:`Drepper:2013:TLS`.  TLS is
795        available in :term:`C11` and :term:`C++11`.  The support for TLS depends
796        on the CPU port :cite:`RTEMS:CPU`.
797
798    TMCB
799        An acronym for :term:`Timer Control Block`.
800
801    transient overload
802        A temporary rise in system activity which may cause deadlines to be
803        missed.  Rate Monotonic Scheduling can be used to determine if all
804        deadlines will be met under transient overload.
805
806    TTAS
807        An acronym for Test and Test-And-Set.
808
809    User Extension Table
810        A table which contains the entry points for each user extensions.
811
812    user extensions
813        Software routines provided by the application to enhance the
814        functionality of RTEMS.
815
816    User Initialization Tasks Table
817        A table which contains the information needed to create and start each of
818        the user initialization tasks.
819
820    user-provided
821        These terms are used to designate any software routines which must be
822        written by the application designer.
823
824    user-supplied
825        This term has the same meaning as :term:`user-provided`.
826
827    vector
828        Memory pointers used by the processor to fetch the address of routines
829        which will handle various exceptions and interrupts.
830
831    wait queue
832        The list of tasks blocked pending the release of a particular resource.
833        Message queues, regions, and semaphores have a wait queue associated with
834        them.
835
836    YAML
837        An acronym for `YAML Ain't Markup Language <https://yaml.org/>`_.
838
839    yield
840        When a task voluntarily releases control of the processor.
Note: See TracBrowser for help on using the repository browser.