|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.realtime.ReleaseParameters
javax.realtime.AperiodicParameters
javax.realtime.SporadicParameters
A notice to the scheduler that the associated schedulable object s run method will be released aperiodically but with a minimum time between releases. When a reference to a SporadicParameters object is given as a parameter to a constructor, the SporadicParameters object becomes bound to the object being created. Changes to the values in the SporadicParameters object affect the constructed object. If given to more than one constructor, then changes to the values in the SporadicParameters 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.
Correct initiation of the deadline miss and cost overrun handlers
requires that the underlying system know the arrival time of each
sporadic task. For an instance of RealtimeThread
the
arrival time is the time at which the start()
is
invoked. For other instances of Schedulable
it may be required
for the implementation to save the arrival times. For instances of
AsyncEventHandler
with a ReleaseParameters54 type of
SporadicParameters the implementation must maintain a queue of
monotonically increasing arrival times which correspond to the
execution of the fire() method of the instance of AsyncEvent181
bound to the instance of AsyncEventHandler
.
This class allows the application to specify one of four possible behaviors that indicate what to do if an arrival occurs that is closer in time to the previous arrival than the value given in this class as minimum interarrival time, what to do if, for any reason, the queue overflows, and the initial size of the queue.
Field Summary | |
static String |
arrivalTimeQueueOverflowExcpt
If an arrival time occurs and should be queued but the queue already holds a number of times equal to the initial queue length defined by this then the fire() method shall throw a ResourceLimitError .If thearrival time is a result of a
happening to which the instance of AsyncEventHandler is
bound then the arrival time is ignored. |
static String |
arrivalTimeQueueOverflowIgnore
If an arrival time occurs and should be queued but the queue already holds a number of times equal to the initial queue length defined by this then the arrival time is ignored. |
static String |
arrivalTimeQueueOverflowReplace
If an arrival time occurs and should be queued but the queue already holds a number of times equal to the initial queue length defined by this then the previous arrival time is overwritten by the new arrival time. |
static String |
arrivalTimeQueueOverflowSave
If an arrival time occurs and should be queued but the queue already holds a number of times equal to the initial queue length defined by this then the queue is lengthened and the arrival time is saved. |
protected int |
intialQueueLength
|
protected RelativeTime |
minInterarrival
|
protected String |
mitPolicy
|
static String |
mitViolationExcept
If an arrival time for any instance of Schedulable41 which has this as its instance of ReleaseParameters occurs at a time
less then the mini-mum interarrival time defined here then the
fire() method shall throw MITViolationException . |
static String |
mitViolationIgnore
If an arrival time for any instance of Schedulable which has
this as its instance of ReleaseParameters occurs at a time
less then the mini-mum interarrival time defined here then the
new arrival time is ignored. |
static String |
mitViolationReplace
If an arrival time for any instance of Schedulable which has
this as its instance of ReleaseParameters occurs at a time
less then the mini-mum interarrival time defined here then, if
necessary, the previous arrival time may be overwritten with
the new arrival time. |
static String |
mitViolationSave
If an arrival time for any instance of Schedulable which has
this as its instance of ReleaseParameters occurs at a time
less then the mini-mum interarrival time defined here then the
new arrival time is added to the queue of arrival times. |
protected String |
queuePolicy
|
Fields inherited from class javax.realtime.ReleaseParameters |
cost, deadline, missHandler, overrunHandler |
Constructor Summary | |
SporadicParameters(RelativeTime minInterarrival,
RelativeTime cost,
RelativeTime deadline,
AsyncEventHandler overrunHandler,
AsyncEventHandler missHandler)
Creates a new SporadicParameters instance. |
Method Summary | |
String |
getArrivalTimeQueueOverflowBehavior()
Get the behavior of the arrival time queue in the event of an overflow. |
int |
getInitialArrivalTimeQueueLength()
Get the initial number of elements the arrival time queue can hold. |
void |
getInitialArrivalTimeQueueLength(int initial)
Set the initial number of elements the arrival time queue can hold without lengthening the queue. |
RelativeTime |
getMinimumInterarrival()
Get the minimum interarrival time. |
String |
getMitViolationBehavior()
Get the arrival time queue behavior in the event of a minimum interarrival time violation. |
void |
setArrivalTimeQueueOverflowBehavior(String behavior)
Set the behavior of the arrival time queue in the case where the insertion of a new element would make the queue size greater than the initial size given in this. |
boolean |
setIfFeasible(RelativeTime interarrival,
RelativeTime cost,
RelativeTime deadline)
Returns true if, after considering the values of the parameters, the task set would still be feasible. |
void |
setInitialArrivalTimeQueueLength(String behavior)
Set the behavior of the arrival time queue in the case where the new arrival time is closer to the previous arrival time than the minimum interarrival time given in this. |
void |
setMinimumInterarrival(RelativeTime mit)
Set the minimum interarrival time. |
Methods inherited from class javax.realtime.AperiodicParameters |
setIfFeasible |
Methods inherited from class javax.realtime.ReleaseParameters |
getCost, getCostOverrunHandler, getDeadline, getDeadlineMissHandler, setCost, setCostOverrunHandler, setDeadline, setDeadlineMissHandler |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected RelativeTime minInterarrival
protected String queuePolicy
protected String mitPolicy
protected int intialQueueLength
public static final String arrivalTimeQueueOverflowExcpt
ResourceLimitError
.If thearrival time is a result of a
happening to which the instance of AsyncEventHandler
is
bound then the arrival time is ignored.
public static final String arrivalTimeQueueOverflowIgnore
public static final String arrivalTimeQueueOverflowReplace
public static final String arrivalTimeQueueOverflowSave
public static final String mitViolationExcept
ReleaseParameters
occurs at a time
less then the mini-mum interarrival time defined here then the
fire() method shall throw MITViolationException
. If the
arrival time is a result of a happen-ing to which the instance
of AsyncEventHandler
is bound then the arrival time is
ignored.
public static final String mitViolationIgnore
Schedulable
which has
this as its instance of ReleaseParameters
occurs at a time
less then the mini-mum interarrival time defined here then the
new arrival time is ignored.
public static final String mitViolationReplace
Schedulable
which has
this as its instance of ReleaseParameters
occurs at a time
less then the mini-mum interarrival time defined here then, if
necessary, the previous arrival time may be overwritten with
the new arrival time.
public static final String mitViolationSave
Schedulable
which has
this as its instance of ReleaseParameters
occurs at a time
less then the mini-mum interarrival time defined here then the
new arrival time is added to the queue of arrival times.
However, the new time is adjusted so that the differ-ence
between it and the previous time is equal to the minimum
interarrival time.
Constructor Detail |
public SporadicParameters(RelativeTime minInterarrival, RelativeTime cost, RelativeTime deadline, AsyncEventHandler overrunHandler, AsyncEventHandler missHandler)
SporadicParameters
instance.
minInterarrival
- The release times of the schedulable
object will occur no closer than this interval. Must be greater
than zero when entering feasibility analysis.cost
- Processing time per minimum interarrival interval.
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 interval. 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 cost. 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 minimum
interarrival interval. Other implementations may use this
parameter to compute execution eligibility. If null, deadline
will equal the minimum interarrival time.overrunHandler
- This handler is invoked if an invocation
of the schedulable object exceeds cost. 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.Implementation Note: By default the Queue Overflow, and the Minimum Interarrival Time Violation are set to save.
Method Detail |
public String getArrivalTimeQueueOverflowBehavior()
String
representing the behaviour
currently set.public void setArrivalTimeQueueOverflowBehavior(String behavior)
behavior
- a string representing the desired behavior.public int getInitialArrivalTimeQueueLength()
public void getInitialArrivalTimeQueueLength(int initial)
initial
- the initial lenght of the queue.public RelativeTime getMinimumInterarrival()
public void setMinimumInterarrival(RelativeTime mit)
mit
- The release times of the schedulable object will
occur no closer than this interval. Must be greater than zero
when entering feasibility analysis.public String getMitViolationBehavior()
public void setInitialArrivalTimeQueueLength(String behavior)
behavior
- a string representin the desired behaviour.public boolean setIfFeasible(RelativeTime interarrival, RelativeTime cost, RelativeTime deadline)
interarrival
- The release times of the schedulable object
will occur no closer than this interval. Must be greater than
zero when entering feasibility analysis.cost
- Processing time per minimum interarrival interval.
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 interval. 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 cost. 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 minimum
interarrival interval. Other implementations may use this
parameter to compute execution eligibility. If null, deadline
will equal the minimum interarrival time.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |