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