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

5
Last change on this file since d2acbca was d2acbca, checked in by Sebastian Huber <sebastian.huber@…>, on 02/27/20 at 08:47:14

c-user: Sort glossary terms

Update #3853.

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