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

5
Last change on this file since 785c02f was 785c02f, checked in by Sebastian Huber <sebastian.huber@…>, on 02/02/17 at 13:07:53

c-user: Add SMP low-level synchronization

  • Property mode set to 100644
File size: 25.9 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   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      see 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   BSP
64      see Board Support Package.
65
66   Board Support Package
67      A collection of device initialization and control routines specific to a
68      particular type of board or collection of boards.
69
70   buffer
71      A fixed length block of memory allocated from a partition.
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      calledclusters.  Clusters with a cardinality of one are partitions.  Each
97      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 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 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 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 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 Partition Control Block.
495
496   PXCB
497      An acronym for 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 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 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 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   task
672   thread
673      A logically complete thread of execution.  It consists normally of a set
674      of registers and a stack.  The scheduler assigns processors to a subset
675      of the ready tasks.  The terms task and thread are synonym in RTEMS.  The
676      term task is used throughout the Classic API, however, internally in the
677      operating system implementation and the POSIX API the term thread is
678      used.
679
680   Task Control Block
681      A data structure associated with each task used by RTEMS to manage that
682      task.
683
684   task migration
685      Task migration happens in case a task stops execution on one processor
686      and resumes execution on another processor.
687
688   task processor affinity
689      The set of processors on which a task is allowed to execute.
690
691   task switch
692      Alternate terminology for context switch.  Taking control of the
693      processor from one task and given to another.
694
695   TCB
696      An acronym for Task Control Block.
697
698   thread dispatch
699      The thread dispatch transfers control of the processor from the currently
700      executing thread to the heir thread of the processor.
701
702   tick
703      The basic unit of time used by RTEMS.  It is a user-configurable number
704      of microseconds.  The current tick expires when a clock tick directive is
705      invoked.
706
707   tightly-coupled
708      A multiprocessor configuration system which communicates via shared
709      memory.
710
711   timeout
712      An argument provided to a number of directives which determines the
713      maximum length of time an application task is willing to wait to acquire
714      the resource if it is not immediately available.
715
716   timer
717      An RTEMS object used to invoke subprograms at a later time.
718
719   Timer Control Block
720      A data structure associated with each timer used by RTEMS to manage that
721      timer.
722
723   timeslicing
724      A task scheduling discipline in which tasks of equal priority are
725      executed for a specific period of time before being preempted by another
726      task.
727
728   timeslice
729      The application defined unit of time in which the processor is allocated.
730
731   TLS
732      An acronym for Thread-Local Storage :cite:`Drepper:2013:TLS`.  TLS is
733      available in :term:`C11` and :term:`C++11`.  The support for TLS depends
734      on the CPU port :cite:`RTEMS:CPU`.
735
736   TMCB
737      An acronym for Timer Control Block.
738
739   transient overload
740      A temporary rise in system activity which may cause deadlines to be
741      missed.  Rate Monotonic Scheduling can be used to determine if all
742      deadlines will be met under transient overload.
743
744   user extensions
745      Software routines provided by the application to enhance the
746      functionality of RTEMS.
747
748   User Extension Table
749      A table which contains the entry points for each user extensions.
750
751   User Initialization Tasks Table
752      A table which contains the information needed to create and start each of
753      the user initialization tasks.
754
755   user-provided
756   user-supplied
757      These terms are used to designate any software routines which must be
758      written by the application designer.
759
760   vector
761      Memory pointers used by the processor to fetch the address of routines
762      which will handle various exceptions and interrupts.
763
764   wait queue
765      The list of tasks blocked pending the release of a particular resource.
766      Message queues, regions, and semaphores have a wait queue associated with
767      them.
768
769   yield
770      When a task voluntarily releases control of the processor.
Note: See TracBrowser for help on using the repository browser.