source: rtems/doc/user/glossary.texi @ 29e6637e

4.115
Last change on this file since 29e6637e was 29e6637e, checked in by Sebastian Huber <sebastian.huber@…>, on May 5, 2014 at 7:55:13 PM

doc: Move SMP glossary to global glossary

Add some terms.

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