source: rtems/doc/user/glossary.texi @ dafa5d88

Last change on this file since dafa5d88 was dafa5d88, checked in by Sebastian Huber <sebastian.huber@…>, on Sep 3, 2015 at 8:27:16 AM

score: Implement priority boosting

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