Article Preview
Top1. Introduction
Process scheduling in a multiprocessor environment refers to the assignment of tasks to different processors, satisfying a given set of constraints, so that the schedule length or overall task completion time is minimized. A process (or an application) consists a set of interdependent tasks and may be represented by a directed acyclic graph (DAG),
where the set of nodes V, represents the set of tasks, and the set of edges E, represents the communication between tasks. If
then
is called the immediate predecessor of
, and
is called the immediate successor of
. Given a task
its set of immediate predecessors, denoted by
is defined as
. If
has two or more immediate predecessors then
is referred to as a join task. The immediate successors of
is denoted by
and is defined as
.
is the set of all the descendants of task
, and is defined as
. It is assumed that there is one entry task
and one exit task
for the DAG.
In both homogeneous and heterogeneous environments the process scheduling problem is NP-complete (Garey & Johnson, 1979; Graham, Lawler, Lenstra, & Kan, 1979; Kasahara & Narita, 1984; Ullman, 1975). In homogeneous environments several heuristics were proposed using both list scheduling without task duplication (Ahmad & Kwok, 1996; Wu & Gajski, 1990) and list scheduling using task duplication (Ahmad & Kwok, 1998; Bansal, Kumar & Singh, 2003; Chaudhuri & Elcock, 2005; Park & Choe, 2002). In list scheduling, tasks are assigned a priority and based on that priority a task is scheduled. In task duplication, some tasks are deliberately scheduled on more than one processor to reduce inter-processor communication.