javax.realtime
Class PeriodicParameters
java.lang.Object
|
+--javax.realtime.ReleaseParameters
|
+--javax.realtime.PeriodicParameters
- public class PeriodicParameters
- extends ReleaseParameters
This release parameter indicates that the RealtimeThread.waitForNextPeriod()
method on the
associated Schedulable
object will be unblocked at the start of each period.
When a reference to a PeriodicParameters
object is given
as a parameter to a constructor the PeriodicParameters
object becomes bound
to the object being created. Changes to the values in the PeriodicParameters
object affect the constructed object. If given to more than one constructor
then changes to the values in the PeriodicParameters
object affect all
of the associated objects. Note that this is a one-to-many relationship and
not a many-to-many.
Caution: This class is explicitly unsafe in multithreaded
situations when it is being changed. No synchronization is done. It
is assumed that users of this class who are mutating instances will be
doing their own synchronization at a higher level.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PeriodicParameters
public PeriodicParameters(HighResolutionTime start,
RelativeTime period,
RelativeTime cost,
RelativeTime deadline,
AsyncEventHandler overrunHandler,
AsyncEventHandler missHandler)
- Create a
PeriodicParameters
object.
- Parameters:
start
- Time at which the first period begins.
If a RelativeTime
, this time is relative to
the first time the schedulable object becomes schedulable
(schedulable time)
(e.g., when start()
is called on a thread).
If an AbsoluteTime
and it is before the
schedulable time, start is equivalent to the schedulable time.period
- The period is the interval between successive
unblocks of RealtimeThread.waitForNextPeriod()
.
Must be greater than zero when entering feasibility analysis.cost
- Processing time per period.
On implementations which can measure the amount of time
a schedulable object is executed, this value is the maximum
amount of time a schedulable object receives per period.
On implementations which cannot measure execution time, this value is used
as a hint to the feasibility algorithm. On such systems it is not possible
to determine when
any particular object exceeds or will exceed cost time units in a period.
Equivalent to RelativeTime(0,0)
if null.deadline
- The latest permissible completion time measured from the
release time of the associated invocation of the schedulable object.
For a minimum implementation for purposes of feasibility analysis,
the deadline is equal to the period.
Other implementations may use this parameter
to compute execution eligibility.
If null, deadline will equal the period.overrunHandler
- This handler is invoked if an invocation of the schedulable
object exceeds cost in the given period.
Not required for minimum implementation.
If null, nothing happens on the overrun condition.missHandler
- This handler is invoked if the run()
method of the schedulable
object is still executing after the deadline has passed.
Although minimum implementations do not consider deadlines in
feasibility calculations, they must recognize variable deadlines
and invoke the miss handler as appropriate.
If null, nothing happens on the miss deadline condition.
setIfFeasible
public boolean setIfFeasible(RelativeTime period,
RelativeTime cost,
RelativeTime deadline)
- Returns true if, after considering the values of the parameters,
the task set would still be feasible. In this case the values of
the parameters are changed.
Returns false if, after considering the values of the parameters,
the task set would not be feasible. In this case the values of
the parameters are not changed.
getStart
public HighResolutionTime getStart()
- Get the start time.
setStart
public void setStart(HighResolutionTime s)
- Set the start time.
- Parameters:
start
- Time at which the first period begins.
getPeriod
public RelativeTime getPeriod()
- Get the period.
setPeriod
public void setPeriod(RelativeTime p)
- Set the period.
- Parameters:
period
- The period is the interval between successive
unblocks of RealtimeThread.waitForNextPeriod()
.
Also used in the feasibility analysis and admission control algorithms.