Changeset 43b7eeb in rtems-docs


Ignore:
Timestamp:
Feb 26, 2020, 2:58:27 PM (19 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
5, am, master
Children:
834dcf5
Parents:
732c570
git-author:
Sebastian Huber <sebastian.huber@…> (02/26/20 14:58:27)
git-committer:
Sebastian Huber <sebastian.huber@…> (03/02/20 07:11:42)
Message:

c-user: Use four spaces per indent level

Four spaces per indent level is used in most files.

Update #3853.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c-user/glossary.rst

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