SEPTEMBER/OCTOBER 2006 (Vol. 23, No. 5) p. 102
0740-7459/06/$31.00 © 2006 IEEE
Published by the IEEE Computer Society
Published by the IEEE Computer Society
Real-Time Software Engineering, Part 2
PDFs Require Adobe Acrobat
passive I/O device: A device that doesn't generate an interrupt on completion of an input or output operation. The input from a passive input device must be read either on a polled basis or on demand.
passive I/O device interface task: A task that interfaces to a passive I/O device and either reads from it or writes to it on demand.
passive object: An object with no thread of control; an object with operations that concurrent objects (that is, tasks) invoke directly or indirectly.
performance analysis: A quantitative analysis of a real-time system (or software design) executing on a given hardware configuration with a given external workload applied to it.
periodic I/O device interface task: A task that interfaces to a passive I/O device and polls it regularly.
periodic task: A task that a timer event activates at regular intervals.
priority ceiling protocol: An algorithm that provides bounded priority inversion; that is, at most one lower-priority task can block a higher-priority task. See priority inversion.
priority inversion: A case where a task's execution is delayed because a lower-priority task is blocking it.
process, heavyweight: A process with its own memory and multiple threads of control.
process, lightweight: A process with a single thread of control; a task.
rate-monotonic algorithm: A real-time scheduling algorithm that assigns higher priorities to tasks with shorter periods.
real-time: A problem, system, or application that's concurrent and has timing constraints whereby incoming events must be processed within a given timeframe.
real-time scheduling theory: A theory for priority-based scheduling of concurrent tasks with hard deadlines. It addresses how to determine whether a group of tasks, whose individual CPU utilization is known, will meet their deadlines.
resource monitor task: A task ensuring sequential access to a resource.
sequential clustering: A task-structuring criterion in which objects that are constrained to execute sequentially are mapped to a task.
synchronous message communication: A form of communication in which a producer task sends a message to a consumer task and waits for acknowledgment. Also called tightly coupled message communication.
synchronous message communication with reply: A form of communication in which a producer (or client) task sends a message to a consumer (or server) task and waits for a reply. Also called tightly coupled message communication with reply.
synchronous message communication without reply: A form of communication in which a producer task sends a message to a consumer task and waits for the consumer to accept the message. Also called tightly coupled message communication without reply.
system interface task: A task that hides the interface to and communicates with an external system or subsystem.
task: A concurrent object with its own thread of control. A task represents the execution of a sequential program or a sequential component of a concurrent program. Each task deals with a sequential thread of execution; there is no concurrency within a task. Also called concurrent task, thread, process, concurrent object.
task behavior specification: A specification describing a concurrent task's interface, structure, timing characteristics, relative priority, errors detected, and task event sequencing logic.
task-clustering criteria: A category of the task-structuring criteria addressing whether and how to group objects into concurrent tasks.
task interface: Consists of messages' input or output, events signaled (input or output), external inputs or outputs, or access to passive objects.
task inversion: An optimization concept that originated in Jackson Structured Programming and Jackson System Development, whereby the tasks in a system can be merged in a systematic way.
task priority criteria: A category of the task-structuring criteria addressing the relative importance of executing a given task.
task structuring: A software design stage with the objective of structuring a concurrent application into concurrent tasks and defining the task interfaces.
task-structuring criteria: A set of heuristics for helping a designer structure a system into concurrent tasks.
temporal clustering: A task-structuring criterion by which activities that aren't sequentially dependent but are activated by the same event are grouped into a task.
time-critical task: A task that must meet a hard deadline.
timer event: A stimulus used to periodically activate a task.
timing diagram: A diagram showing the time-ordered execution sequence of a group of tasks.
user interface task: A task that hides the details of the interface to and interacts sequentially with a human user.
utilization bound theorem: A real-time scheduling theorem stating the conditions under which a set of n independent periodic tasks scheduled by the rate-monotonic algorithm will always meet their deadlines.
Hassan Gomaa is a professor of software engineering at George Mason University. Contact him at firstname.lastname@example.org.