Issue No. 04 - July/August (2006 vol. 23)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2006.112
aperiodic task: A task activated on demand. Also called asynchronous task.
asynchronous I/O device: An I/O device that generates an interrupt after producing some input or generating some output.
asynchronous I/O device interface task: A task that interfaces to an I/O device and is activated by interrupts from that device.
asynchronous message communication: Communication in which a producer task sends a message to a consumer task and doesn't wait for a response; a message queue could build up between the tasks. Also called loosely coupled message communication.
completion time theorem: A real-time scheduling theorem. For a set of independent periodic tasks, if each task meets its first deadline when all tasks start at the same time, the deadlines will be met for any combination of start times.
composite task: A task containing nested objects.
concurrent: A problem, process, system, or application in which many activities happen in parallel, the order of incoming events isn't usually predictable, and events often overlap. A concurrent system or application has many threads of control.
concurrent communication diagram: A diagram depicting a network of concurrent tasks and their interfaces in the form of asynchronous and synchronous message communication, event synchronization, and access to passive information-hiding objects.
concurrent task architecture: A description of the concurrent tasks in a system or subsystem in terms of their interfaces and interconnections.
control clustering: A task-structuring criterion by which a control object is combined into a task with the objects it controls.
control task: A task that makes decisions to control other tasks' execution.
critical section: The section of a task's internal logic that's executed mutually exclusively with other tasks.
deadlock: A situation in which two or more tasks are suspended indefinitely because each task is waiting for a resource acquired by another task.
device interface task: A concurrent task that hides the characteristics of and interfaces to an external I/O device.
discrete data: Data that arrives at specific time intervals.
event: An external or internal stimulus used for synchronization purposes; can be an external interrupt, a timer expiration, an internal signal, or an internal message.
event sequence analysis: Performance analysis of the sequence of tasks that must be executed to service a given external event.
event sequence diagram: A diagram that identifies the sequence of tasks required to process an external event.
event-sequencing logic: A description of how a task responds to each of its message or event inputs; in particular, what output is generated as a result of each input.
event synchronization: Control of task activation by means of signals. Three types of event synchronization are possible: external interrupts, timer expiration, and internal signals from other tasks.
event trace: A time-ordered description of each external input and the time at which it occurred.
external event: An event from an external object, typically an interrupt from an external I/O device.
external I/O device: A hardware input and/or output device that's outside the software system and part of the external environment.
interface: A task's external specification.
interface task: A task that's part of the application, which interfaces to the external environment.
internal event: A means of synchronization between two tasks.
internal task-structuring criteria: A category of the task-structuring criteria addressing how internal objects are mapped to internal tasks and when an internal task is activated.
I/O task-structuring criteria: A category of the task-structuring criteria addressing how device interface objects are mapped to I/O tasks and when an I/O task is activated.
multiple readers and writers: An algorithm that lets multiple readers access a shared data repository concurrently; however, writers must have mutually exclusive access to update the repository.
mutual exclusion: Giving access to shared data only to one task at a time; can be enforced by means of binary semaphores or by using monitors.
mutually exclusive clustering: A task-structuring criterion in which a group of objects are combined into one task because only one object can be executed at any one time.
non-time-critical computationally intensive task: A low-priority compute-bound task that consumes spare CPU cycles.
Hassan Gomaa is a professor of software engineering at George Mason University. Contact him at email@example.com.