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

5
Last change on this file since c2ee227 was 1f3c22e, checked in by Sebastian Huber <sebastian.huber@…>, on 02/03/17 at 11:54:44

c-user: Update SMP introduction

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