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

5
Last change on this file since 3e005fe was 3e005fe, checked in by Sebastian Huber <sebastian.huber@…>, on 02/02/17 at 10:22:59

c-user: Use sphinx glossary support

Terms can be referenced via :term:XYZ.

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