Real-Time Software Engineering, Part 2
SEPTEMBER/OCTOBER 2006 (Vol. 23, No. 5) p. 102
0740-7459/06/$31.00 © 2006 IEEE

Published by the IEEE Computer Society
Real-Time Software Engineering, Part 2
  Download Citation  
   
Download Content
 
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 hgomaa@gmu.edu.