Java Reference
In-Depth Information
if
(activationTime < releaseTime)
pe
#
(releaseTime - activationTime);
return
pe
!
pt;
}
// The store() method is used to store an activity's
// temporal parameters that correspond to the best
// performance solution found by the scheduling algorithm
// during a given iteration step.
public void
store() {
tempActivationTime
#
activationTime;
tempTerminationTime
#
terminationTime;
}
// The restore() method is invoked at the end of the
// scheduling process to copy into an activity's
// temporal parameters the values corresponding to the
// best performance solution.
public void
restore() {
activationTime
#
tempActivationTime;
terminationTime
#
tempTerminationTime;
}
}
Class
Resource
aggregates
Activity
objects. We use class
ArrayList
to imple-
ment the containment relationship. Since the
Resource
needs to sort the list
of activities according to their activation time, we define the inner class
CompareActivities
that implements the
Comparator
interface.
The core of class
Resource
is the
schedule()
method that enforces the
temporal and resource constraints of the scheduling problem. The method
executes three basic operations. First, it requests its activities to update
their temporal parameters. They could have been modified by the previous
iteration of the scheduling algorithm. As a consequence, the activities do not
necessarily enforce the temporal and resource constraints of this resource.
Thus, the
schedule()
method re-orders the activities according to their new
activation time. Finally, the method sequences the activities in such a way
that they do not overlap. This operation requires modifying the temporal
parameters of the activities.
Since the
schedule()
method modifies the values of the activities' temporal
parameters, it is important to evaluate how these values enforce the tem-
poral constraints represented by the release time and the due time of each
activity. The
getPerformance()
method computes the performance of the
scheduling algorithm with regard to all the activities.
package
scheduler;
import
java.util.*;
public class
Resource {
class
CompareActivity
implements
Comparator {
public int
compare(Object o1, Object o2) {