Glossary of Terms
Actuators change the system’s environment.
Alarms set up points in the future when some action is to take place.
API is the abbreviation for Application Program Interface.
Application Program Interface is the specification of the means by which an application communicates with the OS in order to invoke an OS service.
Background is that part of an application where tasks run, performing the main functionality of the application.
Context is the term used to describe the collection of accessible registers in a CPU.
Counters count ticks from periodic or aperiodic inputs and are used in conjunction with Alarms.
CPU stands for Central Processing Unit, which handles the calculation and internal controls of a computer. It is also another term used for the computer, processor or microcontroller.
Critical Instant of a task is the time at which the release of a task will produce the largest response time. This time usually occurs when the task is released simultaneously with all higher priority tasks.
Current Task means the task that is currently in control of the CPU.
Environment is a term that is a reference to the system architecture and is used interchangeably with operating system, OS or RTOS.
Events occur to signify the need for some kind of attention. Events can be real such as when a device is ready and needs servicing, or when a device error occurs. It can also be a virtual event such as when some part of the application produces a result that must be handled by another part of the application.
Executive is another term used as an equivalent to RTOS.
Flash is a type of ROM that is usually found on most microcontrollers for storage of program code and constant data.
Foreground is the part of an application that demands the highest priority of processing and is usually associated with ISR execution.
Interrupt Service Routine is a software routine that is activated in response to an interrupt.
Interrupts indicate the occurrence of an event that demands immediate, or near-immediate, attention. They cause a brief discontinuity to normal code execution in order to respond to the associated event but eventually return to the interrupted code at the point of the interrupt.
Intertask communications are objects and methods used to pass information from one part of an application to another. Common classes of objects used for intertask communications include Semaphores, Messages and Mailboxes, Queues and Event Flags.
ISR is the abbreviation for Interrupt Service Routine.
Jitter is the variable deviation from the ideal occurrence of a timed event.
Kernel is yet another term used as the equivalent of Executive and RTOS but generally refers to the innermost code of the OS. It is often preceded by the adjective “real-time”, especially if the Kernel has real-time capability.
Memory Partitions, also called Memory Pools, manage dynamic allocation and freeing of blocks of RAM used by the application.
Messages and Mailboxes are useful in managing variable size data movement from a sender to a receiver.
Microcontroller is a type of computer generally used in embedded systems and includes the CPU, Random Access Memory (RAM), Flash or Read Only Memory (ROM), and various peripheral devices such as a UART, Analog-to-Digital converters, timers, etc.
Mutexes permit a task to gain exclusive access to a resource.
Objects are application-specific data structures the operating system uses to manage the behavior of the application. By changes to its various objects the application exhibits a desired behavior and accomplishes its work.
OS is a generic acronym for the term “operating system” without regard to its internal architecture or real-time capability.
Processor is another generic term for a computer.
Queues permit passing data from a producer to a consumer. The order of passing data may be First In, First Out (FIFO) or Last In, First Out (LIFO), or both. Queues generally move fixed-size blocks of data.
RAM is an acronym for Random Access Memory. RAM can be read and written by application code. Most microcontrollers contain some amount of RAM.
Real-time is a measure of a system’s response time to an event and the correctness of the response to that event.
Registers are at the heart of the CPU because it uses them for all numeric calculations, internal code and branch controls. A CPU may have several registers.
Resource is any kind of entity, real or virtual, that the application code needs in order for it to do its work. For example, a database or a UART could both be deemed as resources.
ROM is an acronym for Read-Only Memory, which can only be read by application code. ROM is normally used for program code storage or for data that is constant.
RTOS (Real-Time Operating System) is an acronym for the term that defines an OS with real-time capability. However, it is commonly used to describe the OS for any system architecture used in an embedded system whether or not the OS has real-time capability.
Semaphores are a special type of object that counts the number of events associated with it. There are two primary semaphore models used in embedded systems: (1) the counting semaphore that increments when an event occurs and counts down when the application tests it to determine if the associated event has occurred, and, (2) the binary semaphore used for exclusive access to an associated resource.
Sensors collect data from the system environment.
Services are routines that are executed to achieve certain behavior of a referenced object.
Stacks are areas of RAM in a microcontroller used for temporary storage of data used by a function in the application or as a place to save the register context of the CPU when an interrupt occurs and is being serviced by an ISR. Stacks operate in a Last In, First Out (LIFO) manner with the CPU having a register dedicated to containing the current Top-of-Stack (TOS) address.
Tasks manage execution of application code. An embedded system has at least one task and may have many, depending on the application and the architecture of the OS. In application that employ multiple tasks, each one is independent of other tasks but can establish relationships with other tasks in many forms, including objects, inputs, outputs, or other constructs.
WCET (Worst Case Execution Time) is the time that it takes a task to execute its longest code path.