|
||||||||||
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 schedulerpublic 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 |