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