[489740f] | 1 | .. comment SPDX-License-Identifier: CC-BY-SA-4.0 |
---|
| 2 | |
---|
[fd6dc8c8] | 3 | Glossary |
---|
| 4 | ######## |
---|
| 5 | |
---|
| 6 | :dfn:`active` |
---|
[f29b7faf] | 7 | A term used to describe an object which has been created by an application. |
---|
[fd6dc8c8] | 8 | |
---|
| 9 | :dfn:`aperiodic task` |
---|
[f29b7faf] | 10 | A task which must execute only at irregular intervals and has only a soft |
---|
| 11 | deadline. |
---|
[fd6dc8c8] | 12 | |
---|
| 13 | :dfn:`application` |
---|
[f29b7faf] | 14 | In this document, software which makes use of RTEMS. |
---|
[fd6dc8c8] | 15 | |
---|
| 16 | :dfn:`ASR` |
---|
| 17 | see Asynchronous Signal Routine. |
---|
| 18 | |
---|
| 19 | :dfn:`asynchronous` |
---|
[f29b7faf] | 20 | Not related in order or timing to other occurrences in the system. |
---|
[fd6dc8c8] | 21 | |
---|
| 22 | :dfn:`Asynchronous Signal Routine` |
---|
[f29b7faf] | 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 |
---|
[fd6dc8c8] | 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` |
---|
[f29b7faf] | 31 | A term used to describe a task that has been unblocked and may be scheduled |
---|
| 32 | to the CPU. |
---|
[fd6dc8c8] | 33 | |
---|
| 34 | :dfn:`big endian` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 37 | |
---|
| 38 | :dfn:`bit-mapped` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 41 | |
---|
| 42 | :dfn:`block` |
---|
| 43 | A physically contiguous area of memory. |
---|
| 44 | |
---|
| 45 | :dfn:`blocked task` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 50 | |
---|
| 51 | :dfn:`broadcast` |
---|
[f29b7faf] | 52 | To simultaneously send a message to a logical set of destinations. |
---|
[fd6dc8c8] | 53 | |
---|
| 54 | :dfn:`BSP` |
---|
| 55 | see Board Support Package. |
---|
| 56 | |
---|
| 57 | :dfn:`Board Support Package` |
---|
[f29b7faf] | 58 | A collection of device initialization and control routines specific to a |
---|
| 59 | particular type of board or collection of boards. |
---|
[fd6dc8c8] | 60 | |
---|
| 61 | :dfn:`buffer` |
---|
[f29b7faf] | 62 | A fixed length block of memory allocated from a partition. |
---|
[fd6dc8c8] | 63 | |
---|
| 64 | :dfn:`calling convention` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 69 | |
---|
| 70 | :dfn:`Central Processing Unit` |
---|
[f29b7faf] | 71 | This term is equivalent to the terms processor and microprocessor. |
---|
[fd6dc8c8] | 72 | |
---|
| 73 | :dfn:`chain` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 77 | |
---|
| 78 | :dfn:`cluster` |
---|
| 79 | We have clustered scheduling in case the set of processors of a system is |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 83 | |
---|
| 84 | :dfn:`coalesce` |
---|
[f29b7faf] | 85 | The process of merging adjacent holes into a single larger hole. Sometimes |
---|
| 86 | this process is referred to as garbage collection. |
---|
[fd6dc8c8] | 87 | |
---|
| 88 | :dfn:`Configuration Table` |
---|
[f29b7faf] | 89 | A table which contains information used to tailor RTEMS for a particular |
---|
| 90 | application. |
---|
[fd6dc8c8] | 91 | |
---|
| 92 | :dfn:`context` |
---|
[f29b7faf] | 93 | All of the processor registers and operating system data structures |
---|
| 94 | associated with a task. |
---|
[fd6dc8c8] | 95 | |
---|
| 96 | :dfn:`context switch` |
---|
[f29b7faf] | 97 | Alternate term for task switch. Taking control of the processor from one |
---|
| 98 | task and transferring it to another task. |
---|
[fd6dc8c8] | 99 | |
---|
| 100 | :dfn:`control block` |
---|
[f29b7faf] | 101 | A data structure used by the executive to define and control an object. |
---|
[fd6dc8c8] | 102 | |
---|
| 103 | :dfn:`core` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 107 | |
---|
| 108 | :dfn:`CPU` |
---|
| 109 | An acronym for Central Processing Unit. |
---|
| 110 | |
---|
| 111 | :dfn:`critical section` |
---|
[f29b7faf] | 112 | A section of code which must be executed indivisibly. |
---|
[fd6dc8c8] | 113 | |
---|
| 114 | :dfn:`CRT` |
---|
[f29b7faf] | 115 | An acronym for Cathode Ray Tube. Normally used in reference to the |
---|
| 116 | man-machine interface. |
---|
[fd6dc8c8] | 117 | |
---|
| 118 | :dfn:`deadline` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 122 | |
---|
| 123 | :dfn:`device` |
---|
[f29b7faf] | 124 | A peripheral used by the application that requires special operation |
---|
| 125 | software. See also device driver. |
---|
[fd6dc8c8] | 126 | |
---|
| 127 | :dfn:`device driver` |
---|
[f29b7faf] | 128 | Control software for special peripheral devices used by the application. |
---|
[fd6dc8c8] | 129 | |
---|
| 130 | :dfn:`directives` |
---|
[f29b7faf] | 131 | RTEMS' provided routines that provide support mechanisms for real-time |
---|
| 132 | applications. |
---|
[fd6dc8c8] | 133 | |
---|
| 134 | :dfn:`dispatch` |
---|
[f29b7faf] | 135 | The act of loading a task's context onto the CPU and transferring control |
---|
| 136 | of the CPU to that task. |
---|
[fd6dc8c8] | 137 | |
---|
| 138 | :dfn:`dormant` |
---|
[f29b7faf] | 139 | The state entered by a task after it is created and before it has been |
---|
| 140 | started. |
---|
[fd6dc8c8] | 141 | |
---|
| 142 | :dfn:`Device Driver Table` |
---|
[f29b7faf] | 143 | A table which contains the entry points for each of the configured device |
---|
| 144 | drivers. |
---|
[fd6dc8c8] | 145 | |
---|
| 146 | :dfn:`dual-ported` |
---|
[f29b7faf] | 147 | A term used to describe memory which can be accessed at two different |
---|
| 148 | addresses. |
---|
[fd6dc8c8] | 149 | |
---|
| 150 | :dfn:`embedded` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 154 | |
---|
| 155 | :dfn:`envelope` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 160 | |
---|
| 161 | :dfn:`entry point` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 164 | |
---|
| 165 | :dfn:`events` |
---|
[f29b7faf] | 166 | A method for task communication and synchronization. The directives |
---|
| 167 | provided by the event manager are used to service events. |
---|
[fd6dc8c8] | 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 |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 177 | |
---|
| 178 | :dfn:`executive` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 181 | |
---|
| 182 | :dfn:`exported` |
---|
[f29b7faf] | 183 | An object known by all nodes in a multiprocessor system. An object created |
---|
| 184 | with the GLOBAL attribute will be exported. |
---|
[fd6dc8c8] | 185 | |
---|
| 186 | :dfn:`external address` |
---|
[f29b7faf] | 187 | The address used to access dual-ported memory by all the nodes in a system |
---|
| 188 | which do not own the memory. |
---|
[fd6dc8c8] | 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` |
---|
[f29b7faf] | 197 | A component used in computer systems to enhance performance in |
---|
| 198 | mathematically intensive situations. It is typically viewed as a logical |
---|
[fd6dc8c8] | 199 | extension of the primary processor. |
---|
| 200 | |
---|
| 201 | :dfn:`freed` |
---|
[f29b7faf] | 202 | A resource that has been released by the application to RTEMS. |
---|
[fd6dc8c8] | 203 | |
---|
| 204 | :dfn:`Giant lock` |
---|
| 205 | The :dfn:`Giant lock` is a recursive SMP lock protecting most parts of the |
---|
[f29b7faf] | 206 | operating system state. Virtually every operating system service must |
---|
| 207 | acquire and release the Giant lock during its operation. |
---|
[fd6dc8c8] | 208 | |
---|
| 209 | :dfn:`global` |
---|
[f29b7faf] | 210 | An object that has been created with the GLOBAL attribute and exported to |
---|
| 211 | all nodes in a multiprocessor system. |
---|
[fd6dc8c8] | 212 | |
---|
| 213 | :dfn:`handler` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 218 | |
---|
| 219 | :dfn:`hard real-time system` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 223 | |
---|
| 224 | :dfn:`heap` |
---|
[f29b7faf] | 225 | A data structure used to dynamically allocate and deallocate variable sized |
---|
| 226 | blocks of memory. |
---|
[fd6dc8c8] | 227 | |
---|
| 228 | :dfn:`heir task` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 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` |
---|
[f29b7faf] | 242 | An RTEMS assigned identification tag used to access an active object. |
---|
[fd6dc8c8] | 243 | |
---|
| 244 | :dfn:`IDLE task` |
---|
[f29b7faf] | 245 | A special low priority task which assumes control of the CPU when no other |
---|
| 246 | task is able to execute. |
---|
[fd6dc8c8] | 247 | |
---|
| 248 | :dfn:`interface` |
---|
[f29b7faf] | 249 | A specification of the methodology used to connect multiple independent |
---|
| 250 | subsystems. |
---|
[fd6dc8c8] | 251 | |
---|
| 252 | :dfn:`internal address` |
---|
[f29b7faf] | 253 | The address used to access dual-ported memory by the node which owns the |
---|
| 254 | memory. |
---|
[fd6dc8c8] | 255 | |
---|
| 256 | :dfn:`interrupt` |
---|
[f29b7faf] | 257 | A hardware facility that causes the CPU to suspend execution, save its |
---|
| 258 | status, and transfer control to a specific location. |
---|
[fd6dc8c8] | 259 | |
---|
| 260 | :dfn:`interrupt level` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 264 | |
---|
| 265 | :dfn:`Interrupt Service Routine` |
---|
[f29b7faf] | 266 | An ISR is invoked by the CPU to process a pending interrupt. |
---|
[fd6dc8c8] | 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` |
---|
[f29b7faf] | 275 | In this document, this term is used as a synonym for executive. |
---|
[fd6dc8c8] | 276 | |
---|
| 277 | :dfn:`list` |
---|
[f29b7faf] | 278 | A data structure which allows for dynamic addition and removal of entries. |
---|
| 279 | It is not statically limited to a particular size. |
---|
[fd6dc8c8] | 280 | |
---|
| 281 | :dfn:`little endian` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 284 | |
---|
| 285 | :dfn:`local` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 289 | |
---|
| 290 | :dfn:`local operation` |
---|
[f29b7faf] | 291 | The manipulation of an object which resides on the same node as the calling |
---|
| 292 | task. |
---|
[fd6dc8c8] | 293 | |
---|
| 294 | :dfn:`logical address` |
---|
[f29b7faf] | 295 | An address used by an application. In a system without memory management, |
---|
| 296 | logical addresses will equal physical addresses. |
---|
[fd6dc8c8] | 297 | |
---|
| 298 | :dfn:`loosely-coupled` |
---|
[f29b7faf] | 299 | A multiprocessor configuration where shared memory is not used for |
---|
| 300 | communication. |
---|
[fd6dc8c8] | 301 | |
---|
| 302 | :dfn:`major number` |
---|
[f29b7faf] | 303 | The index of a device driver in the Device Driver Table. |
---|
[fd6dc8c8] | 304 | |
---|
| 305 | :dfn:`manager` |
---|
[f29b7faf] | 306 | A group of related RTEMS' directives which provide access and control over |
---|
| 307 | resources. |
---|
[fd6dc8c8] | 308 | |
---|
| 309 | :dfn:`memory pool` |
---|
| 310 | Used interchangeably with heap. |
---|
| 311 | |
---|
| 312 | :dfn:`message` |
---|
[f29b7faf] | 313 | A sixteen byte entity used to communicate between tasks. Messages are sent |
---|
| 314 | to message queues and stored in message buffers. |
---|
[fd6dc8c8] | 315 | |
---|
| 316 | :dfn:`message buffer` |
---|
[f29b7faf] | 317 | A block of memory used to store messages. |
---|
[fd6dc8c8] | 318 | |
---|
| 319 | :dfn:`message queue` |
---|
[f29b7faf] | 320 | An RTEMS object used to synchronize and communicate between tasks by |
---|
| 321 | transporting messages between sending and receiving tasks. |
---|
[fd6dc8c8] | 322 | |
---|
| 323 | :dfn:`Message Queue Control Block` |
---|
[f29b7faf] | 324 | A data structure associated with each message queue used by RTEMS to manage |
---|
| 325 | that message queue. |
---|
[fd6dc8c8] | 326 | |
---|
| 327 | :dfn:`minor number` |
---|
[f29b7faf] | 328 | A numeric value passed to a device driver, the exact usage of which is |
---|
| 329 | driver dependent. |
---|
[fd6dc8c8] | 330 | |
---|
| 331 | :dfn:`mode` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 335 | |
---|
| 336 | :dfn:`MPCI` |
---|
[f29b7faf] | 337 | An acronym for Multiprocessor Communications Interface Layer. |
---|
[fd6dc8c8] | 338 | |
---|
| 339 | :dfn:`multiprocessing` |
---|
[f29b7faf] | 340 | The simultaneous execution of two or more processes by a multiple processor |
---|
| 341 | computer system. |
---|
[fd6dc8c8] | 342 | |
---|
| 343 | :dfn:`multiprocessor` |
---|
[f29b7faf] | 344 | A computer with multiple CPUs available for executing applications. |
---|
[fd6dc8c8] | 345 | |
---|
| 346 | :dfn:`Multiprocessor Communications Interface Layer` |
---|
[f29b7faf] | 347 | A set of user-provided routines which enable the nodes in a multiprocessor |
---|
| 348 | system to communicate with one another. |
---|
[fd6dc8c8] | 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` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 358 | |
---|
| 359 | :dfn:`mutual exclusion` |
---|
[f29b7faf] | 360 | A term used to describe the act of preventing other tasks from accessing a |
---|
| 361 | resource simultaneously. |
---|
[fd6dc8c8] | 362 | |
---|
| 363 | :dfn:`nested` |
---|
[f29b7faf] | 364 | A term used to describe an ASR that occurs during another ASR or an ISR |
---|
| 365 | that occurs during another ISR. |
---|
[fd6dc8c8] | 366 | |
---|
| 367 | :dfn:`node` |
---|
[f29b7faf] | 368 | A term used to reference a processor running RTEMS in a multiprocessor |
---|
| 369 | system. |
---|
[fd6dc8c8] | 370 | |
---|
| 371 | :dfn:`non-existent` |
---|
[f29b7faf] | 372 | The state occupied by an uncreated or deleted task. |
---|
[fd6dc8c8] | 373 | |
---|
| 374 | :dfn:`numeric coprocessor` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 378 | |
---|
| 379 | :dfn:`object` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 383 | |
---|
| 384 | :dfn:`object-oriented` |
---|
[f29b7faf] | 385 | A term used to describe systems with common mechanisms for utilizing a |
---|
| 386 | variety of entities. Object-oriented systems shield the application from |
---|
[fd6dc8c8] | 387 | implementation details. |
---|
| 388 | |
---|
| 389 | :dfn:`operating system` |
---|
[f29b7faf] | 390 | The software which controls all the computer's resources and provides the |
---|
| 391 | base upon which application programs can be written. |
---|
[fd6dc8c8] | 392 | |
---|
| 393 | :dfn:`overhead` |
---|
[f29b7faf] | 394 | The portion of the CPUs processing power consumed by the operating system. |
---|
[fd6dc8c8] | 395 | |
---|
| 396 | :dfn:`packet` |
---|
[f29b7faf] | 397 | A buffer which contains the messages passed between nodes in a |
---|
| 398 | multiprocessor system. A packet is the contents of an envelope. |
---|
[fd6dc8c8] | 399 | |
---|
| 400 | :dfn:`partition` |
---|
[f29b7faf] | 401 | An RTEMS object which is used to allocate and deallocate fixed size blocks |
---|
| 402 | of memory from an dynamically specified area of memory. |
---|
[fd6dc8c8] | 403 | |
---|
| 404 | :dfn:`partition` |
---|
| 405 | Clusters with a cardinality of one are :dfn:`partitions`. |
---|
| 406 | |
---|
| 407 | :dfn:`Partition Control Block` |
---|
[f29b7faf] | 408 | A data structure associated with each partition used by RTEMS to manage |
---|
| 409 | that partition. |
---|
[fd6dc8c8] | 410 | |
---|
| 411 | :dfn:`pending` |
---|
[f29b7faf] | 412 | A term used to describe a task blocked waiting for an event, message, |
---|
| 413 | semaphore, or signal. |
---|
[fd6dc8c8] | 414 | |
---|
| 415 | :dfn:`periodic task` |
---|
[f29b7faf] | 416 | A task which must execute at regular intervals and comply with a hard |
---|
| 417 | deadline. |
---|
[fd6dc8c8] | 418 | |
---|
| 419 | :dfn:`physical address` |
---|
[f29b7faf] | 420 | The actual hardware address of a resource. |
---|
[fd6dc8c8] | 421 | |
---|
| 422 | :dfn:`poll` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 426 | |
---|
| 427 | :dfn:`pool` |
---|
[f29b7faf] | 428 | A collection from which resources are allocated. |
---|
[fd6dc8c8] | 429 | |
---|
| 430 | :dfn:`portability` |
---|
[f29b7faf] | 431 | A term used to describe the ease with which software can be rehosted on |
---|
| 432 | another computer. |
---|
[fd6dc8c8] | 433 | |
---|
| 434 | :dfn:`posting` |
---|
[f29b7faf] | 435 | The act of sending an event, message, semaphore, or signal to a task. |
---|
[fd6dc8c8] | 436 | |
---|
| 437 | :dfn:`preempt` |
---|
[f29b7faf] | 438 | The act of forcing a task to relinquish the processor and dispatching to |
---|
| 439 | another task. |
---|
[fd6dc8c8] | 440 | |
---|
| 441 | :dfn:`priority` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 444 | |
---|
| 445 | :dfn:`priority boosting` |
---|
| 446 | A simple approach to extend the priority inheritance protocol for clustered |
---|
[f29b7faf] | 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 |
---|
[fd6dc8c8] | 449 | artificially high priority, the pseudo-interrupt priority. |
---|
| 450 | |
---|
| 451 | :dfn:`priority inheritance` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 455 | |
---|
| 456 | :dfn:`priority inversion` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 461 | |
---|
| 462 | :dfn:`processor utilization` |
---|
[f29b7faf] | 463 | The percentage of processor time used by a task or a set of tasks. |
---|
[fd6dc8c8] | 464 | |
---|
| 465 | :dfn:`proxy` |
---|
[f29b7faf] | 466 | An RTEMS control structure used to represent, on a remote node, a task |
---|
| 467 | which must block as part of a remote operation. |
---|
[fd6dc8c8] | 468 | |
---|
| 469 | :dfn:`Proxy Control Block` |
---|
[f29b7faf] | 470 | A data structure associated with each proxy used by RTEMS to manage that |
---|
| 471 | proxy. |
---|
[fd6dc8c8] | 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` |
---|
[f29b7faf] | 480 | The application defined unit of time in which the processor is allocated. |
---|
[fd6dc8c8] | 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 |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 493 | |
---|
| 494 | :dfn:`real-time` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 499 | |
---|
| 500 | :dfn:`reentrant` |
---|
[f29b7faf] | 501 | A term used to describe routines which do not modify themselves or global |
---|
| 502 | variables. |
---|
[fd6dc8c8] | 503 | |
---|
| 504 | :dfn:`region` |
---|
[f29b7faf] | 505 | An RTEMS object which is used to allocate and deallocate variable size |
---|
| 506 | blocks of memory from a dynamically specified area of memory. |
---|
[fd6dc8c8] | 507 | |
---|
| 508 | :dfn:`Region Control Block` |
---|
[f29b7faf] | 509 | A data structure associated with each region used by RTEMS to manage that |
---|
| 510 | region. |
---|
[fd6dc8c8] | 511 | |
---|
| 512 | :dfn:`registers` |
---|
[f29b7faf] | 513 | Registers are locations physically located within a component, typically |
---|
| 514 | used for device control or general purpose storage. |
---|
[fd6dc8c8] | 515 | |
---|
| 516 | :dfn:`remote` |
---|
[f29b7faf] | 517 | Any object that does not reside on the local node. |
---|
[fd6dc8c8] | 518 | |
---|
| 519 | :dfn:`remote operation` |
---|
[f29b7faf] | 520 | The manipulation of an object which does not reside on the same node as the |
---|
| 521 | calling task. |
---|
[fd6dc8c8] | 522 | |
---|
| 523 | :dfn:`return code` |
---|
[f29b7faf] | 524 | Also known as error code or return value. |
---|
[fd6dc8c8] | 525 | |
---|
| 526 | :dfn:`resource` |
---|
[f29b7faf] | 527 | A hardware or software entity to which access must be controlled. |
---|
[fd6dc8c8] | 528 | |
---|
| 529 | :dfn:`resume` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 533 | |
---|
| 534 | :dfn:`return code` |
---|
[f29b7faf] | 535 | A value returned by RTEMS directives to indicate the completion status of |
---|
| 536 | the directive. |
---|
[fd6dc8c8] | 537 | |
---|
| 538 | :dfn:`RNCB` |
---|
| 539 | An acronym for Region Control Block. |
---|
| 540 | |
---|
| 541 | :dfn:`round-robin` |
---|
[f29b7faf] | 542 | A task scheduling discipline in which tasks of equal priority are executed |
---|
| 543 | in the order in which they are made ready. |
---|
[fd6dc8c8] | 544 | |
---|
| 545 | :dfn:`RS-232` |
---|
| 546 | A standard for serial communications. |
---|
| 547 | |
---|
| 548 | :dfn:`running` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 551 | |
---|
| 552 | :dfn:`schedulable` |
---|
[f29b7faf] | 553 | A set of tasks which can be guaranteed to meet their deadlines based upon a |
---|
| 554 | specific scheduling algorithm. |
---|
[fd6dc8c8] | 555 | |
---|
| 556 | :dfn:`schedule` |
---|
[f29b7faf] | 557 | The process of choosing which task should next enter the executing state. |
---|
[fd6dc8c8] | 558 | |
---|
| 559 | :dfn:`scheduled task` |
---|
| 560 | A task is :dfn:`scheduled` if it is allowed to execute and has a processor |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 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 |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 572 | |
---|
| 573 | :dfn:`scheduler instance` |
---|
| 574 | A :dfn:`scheduler instance` is a scheduling algorithm with a corresponding |
---|
[f29b7faf] | 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 | `Configuring a System`_. |
---|
[fd6dc8c8] | 579 | |
---|
| 580 | :dfn:`segments` |
---|
[f29b7faf] | 581 | Variable sized memory blocks allocated from a region. |
---|
[fd6dc8c8] | 582 | |
---|
| 583 | :dfn:`semaphore` |
---|
[f29b7faf] | 584 | An RTEMS object which is used to synchronize tasks and provide mutually |
---|
| 585 | exclusive access to resources. |
---|
[fd6dc8c8] | 586 | |
---|
| 587 | :dfn:`Semaphore Control Block` |
---|
[f29b7faf] | 588 | A data structure associated with each semaphore used by RTEMS to manage |
---|
| 589 | that semaphore. |
---|
[fd6dc8c8] | 590 | |
---|
| 591 | :dfn:`shared memory` |
---|
[f29b7faf] | 592 | Memory which is accessible by multiple nodes in a multiprocessor system. |
---|
[fd6dc8c8] | 593 | |
---|
| 594 | :dfn:`signal` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 597 | |
---|
| 598 | :dfn:`signal set` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 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 |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 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 |
---|
[f29b7faf] | 614 | time. They are implemented using atomic operations. Currently a sense |
---|
| 615 | barrier is used in RTEMS. |
---|
[fd6dc8c8] | 616 | |
---|
| 617 | :dfn:`soft real-time system` |
---|
[f29b7faf] | 618 | A real-time system in which a missed deadline does not compromise the |
---|
| 619 | integrity of the system. |
---|
[fd6dc8c8] | 620 | |
---|
| 621 | :dfn:`sporadic task` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 625 | |
---|
| 626 | :dfn:`stack` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 630 | |
---|
| 631 | :dfn:`status code` |
---|
[f29b7faf] | 632 | Also known as error code or return value. |
---|
[fd6dc8c8] | 633 | |
---|
| 634 | :dfn:`suspend` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 637 | |
---|
| 638 | :dfn:`synchronous` |
---|
[f29b7faf] | 639 | Related in order or timing to other occurrences in the system. |
---|
[fd6dc8c8] | 640 | |
---|
| 641 | :dfn:`system call` |
---|
[f29b7faf] | 642 | In this document, this is used as an alternate term for directive. |
---|
[fd6dc8c8] | 643 | |
---|
| 644 | :dfn:`target` |
---|
[f29b7faf] | 645 | The system on which the application will ultimately execute. |
---|
[fd6dc8c8] | 646 | |
---|
| 647 | :dfn:`task` |
---|
| 648 | A logically complete thread of execution. It consists normally of a set of |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 651 | |
---|
| 652 | :dfn:`Task Control Block` |
---|
[f29b7faf] | 653 | A data structure associated with each task used by RTEMS to manage that |
---|
| 654 | task. |
---|
[fd6dc8c8] | 655 | |
---|
| 656 | :dfn:`task migration` |
---|
[f29b7faf] | 657 | :dfn:`Task migration` happens in case a task stops execution on one |
---|
| 658 | processor and resumes execution on another processor. |
---|
[fd6dc8c8] | 659 | |
---|
| 660 | :dfn:`task processor affinity` |
---|
| 661 | The set of processors on which a task is allowed to execute. |
---|
| 662 | |
---|
| 663 | :dfn:`task switch` |
---|
[f29b7faf] | 664 | Alternate terminology for context switch. Taking control of the processor |
---|
| 665 | from one task and given to another. |
---|
[fd6dc8c8] | 666 | |
---|
| 667 | :dfn:`TCB` |
---|
| 668 | An acronym for Task Control Block. |
---|
| 669 | |
---|
| 670 | :dfn:`thread dispatch` |
---|
[f29b7faf] | 671 | The :dfn:`thread dispatch` transfers control of the processor from the |
---|
| 672 | currently executing thread to the heir thread of the processor. |
---|
[fd6dc8c8] | 673 | |
---|
| 674 | :dfn:`tick` |
---|
[f29b7faf] | 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`` |
---|
[fd6dc8c8] | 677 | directive is invoked. |
---|
| 678 | |
---|
| 679 | :dfn:`tightly-coupled` |
---|
[f29b7faf] | 680 | A multiprocessor configuration system which communicates via shared memory. |
---|
[fd6dc8c8] | 681 | |
---|
| 682 | :dfn:`timeout` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 686 | |
---|
| 687 | :dfn:`timer` |
---|
[f29b7faf] | 688 | An RTEMS object used to invoke subprograms at a later time. |
---|
[fd6dc8c8] | 689 | |
---|
| 690 | :dfn:`Timer Control Block` |
---|
[f29b7faf] | 691 | A data structure associated with each timer used by RTEMS to manage that |
---|
| 692 | timer. |
---|
[fd6dc8c8] | 693 | |
---|
| 694 | :dfn:`timeslicing` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 697 | |
---|
| 698 | :dfn:`timeslice` |
---|
[f29b7faf] | 699 | The application defined unit of time in which the processor is allocated. |
---|
[fd6dc8c8] | 700 | |
---|
| 701 | :dfn:`TMCB` |
---|
| 702 | An acronym for Timer Control Block. |
---|
| 703 | |
---|
| 704 | :dfn:`transient overload` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 708 | |
---|
| 709 | :dfn:`user extensions` |
---|
[f29b7faf] | 710 | Software routines provided by the application to enhance the functionality |
---|
| 711 | of RTEMS. |
---|
[fd6dc8c8] | 712 | |
---|
| 713 | :dfn:`User Extension Table` |
---|
[f29b7faf] | 714 | A table which contains the entry points for each user extensions. |
---|
[fd6dc8c8] | 715 | |
---|
| 716 | :dfn:`User Initialization Tasks Table` |
---|
[f29b7faf] | 717 | A table which contains the information needed to create and start each of |
---|
| 718 | the user initialization tasks. |
---|
[fd6dc8c8] | 719 | |
---|
| 720 | :dfn:`user-provided` |
---|
[f29b7faf] | 721 | Alternate term for user-supplied. This term is used to designate any |
---|
| 722 | software routines which must be written by the application designer. |
---|
[fd6dc8c8] | 723 | |
---|
| 724 | :dfn:`user-supplied` |
---|
[f29b7faf] | 725 | Alternate term for user-provided. This term is used to designate any |
---|
| 726 | software routines which must be written by the application designer. |
---|
[fd6dc8c8] | 727 | |
---|
| 728 | :dfn:`vector` |
---|
[f29b7faf] | 729 | Memory pointers used by the processor to fetch the address of routines |
---|
| 730 | which will handle various exceptions and interrupts. |
---|
[fd6dc8c8] | 731 | |
---|
| 732 | :dfn:`wait queue` |
---|
[f29b7faf] | 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. |
---|
[fd6dc8c8] | 736 | |
---|
| 737 | :dfn:`yield` |
---|
| 738 | When a task voluntarily releases control of the processor. |
---|