|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjavax.realtime.Scheduler
An instance of Scheduler manages the execution of
schedulable objects and may implement a feasibility algorithm. The
feasibility algorithm may determine if the known set of schedulable
objects, given their particular execution ordering (or priority
assignment), is a feasible schedule.
Subclasses of Scheduler are used for alternative
scheduling policies and should define an instance()
class method to return the default instance of the subclass. The
name of the subclass should be descriptive of the policy, allowing
applications to deduce the policy available for the scheduler
obtained via getDefaultScheduler() (e.g., an
EDFScheduler).
| Constructor Summary | |
protected |
Scheduler()
|
| Method Summary | |
protected abstract boolean |
addToFeasibility(Schedulable schedulable)
Inform the scheduler and cooperating facilities that the resource demands (as expressed in the associated instances of SchedulingParameters, ReleaseParameters, MemoryParameters ,and ProcessingGroupParameters)of
this instance of Schedulable will be considered in the
feasibility analysis of the associated Scheduler until
further notice. |
abstract int |
computeExecutionEligibility(Schedulable schedulable)
Computes the exectuion eligibility that is currently associated to a schedulable object. |
abstract void |
fireSchedulable(Schedulable schedulable)
Trigger the execution of a schedulable object (like an AsyncEventHandler). |
abstract ReleaseParameters |
getDefaultReleaseParameters()
Get the default ReleaseParameters (in case null
is passed in place of ReleaseParameters to a Schedulable). |
static Scheduler |
getDefaultScheduler()
Get the default scheduler for the system. |
abstract SchedulingParameters |
getDefaultSchedulingParameters()
Get the default SchedulingParameters (in case
null is passed in place of SchedulingParameters
to a Schedulable). |
abstract String |
getPolicyName()
Get a string representing the scheduling policy implemented by the scheduler. |
abstract boolean |
isFeasible()
Returns true if and only if the system is able to satisfy the constraints expressed in the release parameters of the existing schedulable objects. |
void |
notifyThreadCompletion(RealtimeThread thread)
|
void |
notifyThreadStart(RealtimeThread thread)
|
protected abstract boolean |
removeFromFeasibility(Schedulable schedulable)
Inform the scheduler and cooperating facilities that the resource demands, as expressed in the associated instances of SchedulingParameters, ReleaseParameters, MemoryParameters,and ProcessingGroupParameters , of
this instance of Schedulable should no longer be
considered in the feasibility analysis of the associated Scheduler. |
static void |
setDefaultScheduler(Scheduler scheduler)
Set the default scheduler. |
abstract boolean |
setIfFeasible(Schedulable schedulable,
ReleaseParameters release,
MemoryParameters memory)
Returns true if, after considering the values of the parameters, the task set would still be feasible. |
abstract boolean |
setIfFeasible(Schedulable schedulable,
ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
Returns true if, after considering the values of the parameters, the task set would still be feasible. |
abstract boolean |
setIfFeasible(Schedulable schedulable,
SchedulingParameters scheduling,
ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
Returns true if, after considering the values of the parameters, the task set would still be feasible. |
abstract boolean |
validateSchedulingParameters(Schedulable schedulable)
Makes sure that the thread has the right set of scheduling parameters for this scheduler. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
protected Scheduler()
| Method Detail |
protected abstract boolean addToFeasibility(Schedulable schedulable)
SchedulingParameters, ReleaseParameters, MemoryParameters ,and ProcessingGroupParameters)of
this instance of Schedulable will be considered in the
feasibility analysis of the associated Scheduler until
further notice. Whether the resulting system is feasible or
not, the addition is completed.
schedulable - the Schedulable entity to be added
to the feasibility set
public abstract void fireSchedulable(Schedulable schedulable)
AsyncEventHandler).
schedulable - the schedulable object to make active.public static Scheduler getDefaultScheduler()
public abstract String getPolicyName()
String object which is the name of the
scheduling policy used by this.public abstract boolean isFeasible()
protected abstract boolean removeFromFeasibility(Schedulable schedulable)
SchedulingParameters, ReleaseParameters, MemoryParameters,and ProcessingGroupParameters , of
this instance of Schedulable should no longer be
considered in the feasibility analysis of the associated Scheduler. Whether the resulting system is feasible or not,
the subtraction is completed.
schedulable - a Schedulable object that has
to be removed from the task set that is considered for
feasibility analysis.
public static void setDefaultScheduler(Scheduler scheduler)
RealtimeThread when they are constructed.
The default scheduler is set to the required PriorityScheduler at startup.
scheduler - The Scheduler that becomes the
default scheduler assigned to new threads. If null nothing
happens.
SecurityException - if the caller is not permitted to set
the default scheduler
public abstract boolean setIfFeasible(Schedulable schedulable,
ReleaseParameters release,
MemoryParameters memory)
schedulable - a Schedulable valuerelease - a ReleaseParameters valuememory - a MemoryParameters value
public abstract boolean setIfFeasible(Schedulable schedulable,
ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
schedulable - a Schedulable valuerelease - a ReleaseParameters valuememory - a MemoryParameters valuegroup - a ProcessingGroupParameters value
public abstract boolean setIfFeasible(Schedulable schedulable,
SchedulingParameters scheduling,
ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
schedulable - a Schedulable valuescheduling - a SchedulingParameters valuerelease - a ReleaseParameters valuememory - a MemoryParameters valuegroup - a ProcessingGroupParameters value
public void notifyThreadStart(RealtimeThread thread)
public void notifyThreadCompletion(RealtimeThread thread)
public abstract boolean validateSchedulingParameters(Schedulable schedulable)
schedulable - a schedulable entity
public abstract int computeExecutionEligibility(Schedulable schedulable)
schedulable - a Schedulable for which the
execution eligibility has to be computed.
int value representing the eligibility.public abstract ReleaseParameters getDefaultReleaseParameters()
ReleaseParameters (in case null
is passed in place of ReleaseParameters to a Schedulable).
ReleaseParameters for this Scheduler.public abstract SchedulingParameters getDefaultSchedulingParameters()
SchedulingParameters (in case
null is passed in place of SchedulingParameters
to a Schedulable).
SchedulingParameters for this
Scheduler.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||