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