source: rtems-docs/c_user/glossary.rst @ 9aafb39

4.115
Last change on this file since 9aafb39 was 9aafb39, checked in by Chris Johns <chrisj@…>, on 10/28/16 at 12:56:02

c_user: Remove errors and warnings.

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