SEPTEMBER/OCTOBER 2006 (Vol. 23, No. 5) p. 102 0740-7459/06/$26.00 © 2006 IEEE Published by the IEEE Computer Society Real-Time Software Engineering, Part 2
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.
| |||||||||||||||||||||||||||||