Title:
1Real-Time JavaWhat Could and Should it Mean?
- E. Douglas Jensen
- The MITRE Corporation
- jensen_at_real-time.org, jensen_at_mitre.orghttp//www.
realtime-os.com
2Real-Time JavaDifferent Strokes for Different
Folks
- Real-time Java, hard real-time Java, and
soft real-time Java are ambiguous terms - currently used with very different definitions
- often used without any definitions
- Could mean very different things
- cf. motorized road vehicle sports car,
18-wheeler, pickup, van, motorcycle - Different users need very different things
3Outline
- Operate in real-time, real-time resource
management - Time constraints hard, soft
- Scheduling optimization criteria hard, soft
- Predictability and determinism
- Hard real-time Java, soft real-time Java
- Distributed Java, distributed real-time Java
- Real-time enhancements needed for Java
4Real-Time Computing
- Entity operates in real-time
- degree to which the entity
- satisfies time constraints acceptably
- collective optimality (scheduling optimization
criterion) - predictability
- Entity does real-time resource management
- degree to which the entity
- explicitly takes time constraints into account
- (vs. resource supply gtgtgt resource demand)
5Time Constraints
- Time constrained thread activities
- Utility for performing the activity in terms of
when the activity is completed - Completed no loss of generality
- Used by the scheduler
- (Progressive utility out of scope here)
6Hard Deadline Time Constraint
7Soft Deadline Not Hard
- In practice and in this model
- Conventional real-time fails to distinguish among
different types of soft deadlines - Different types have different attributes
- In practice, most deadlines are soft
- This model is more general and expressive
8Scheduling Theory Deadline
9Invert Lateness to Earliness
10Time Constraints That Are Not DLs
11General (Soft) Time Constraints
12Time Constraint Scoped Attribute
- Scoped attribute of a thread
- static entire lifetime of the thread
- dynamic threads time constraints change
- Thread scheduling
- inside scope criterion includes time constraints
- outside scope only other factors in criterion
13Scheduling Events
- Thread transition into time constraint scope
- Completion of time constrained activity
- Deadline or time constraint terminal times
- (Presumes dynamic preemptive scheduling)
14Scheduling
- Contention for a serially reusable resource ?
scheduling - Scheduling optimization criterion
- scheduling algorithm/heuristic
- collective/aggregate timeliness
- multiple factors composite
- Real-time resource management to the degree that
it includes time constraints
15Other Optimization Factors
- Threads relative importance
- Thread dependencies
- precedence
- data consistency
- resource utilization efficiency
16Optimal Schedule
- Each activity completes during interval of
maximum utility - Not feasible in general
- dynamics of application and system
- tractability of algorithm/heuristic
- In general, time constraint factors are
necessarily sub-optimal
17Hard Real-Time Scheduling
- One time constraint factor hard deadlines
- Only optimality criterion meet all deadlines
- No provisions for
- sub-optimality (so either feasible or incorrect)
- soft deadlines or general time constraints
- Presumes static enough execution context
- Most applications have softer time constraints,
and dynamic contexts
18Soft Real-Time Scheduling
- Soft real-time scheduling not hard
- time constraints may be any mix of
- hard deadlines
- soft deadlines
- general time constraints
- any optimality criterion
- provisions for sub-optimality
- any dynamic execution context
- Many different types of soft real-time scheduling
with different attributes
19Sub-Optimal for Hard Deadlines
- Sub-optimal hard deadline factors
- minimize the number of missed deadlines
- miss deadlines according to importance
- Composite hard deadline factors
- always meet these deadlines, and
- minimize the number of those deadlines that are
missed - miss deadlines according to importance
20General Optimality Criteria
- Optimality criteria for soft deadlines
- minimize mean lateness
- minimize summed tardiness
- amortize tardiness according to importance
- Optimality criteria for general time constraints
- maximize the accrued (e.g., summed) utility
21Fixed and Dynamic Priorities
- Fixed assigned á priori (programmer, tool)
- e.g., RMA
- Computing field allows run-time adjustment of
priorities for scheduling anomalies - Dynamic priorities may change at run-time
- e.g., earliest-deadline-first
22Static Scheduling
- Schedule created á priori
- list ordered by static eligibility fixed
priority - highest priority ready thread granted the
resource - Computing field allows run-time adjustment of
priorities for scheduling anomalies - Rate monotonic analysis is normally performed
statically
23Dynamic Scheduling
- Schedule created at execution time
- Normally uses dynamic priorities
- e.g., according to earliest deadline first
- can use fixed priorities if
- other optimization factors (e.g., importance) are
dynamic - fixed priority (e.g., rate monotonic) scheduling
performed at execution time
24Predictability
- Something is predictable to the degree it is
known in advance - one end-point is determinism known absolutely
- other end-point is maximum entropy no knowledge
- The degree to which an outcome or behavior is
predictable implies the degree to which its
future context is predictable(the converse is
not generally true)
25Determinism in Hard Real-Time
- Hard real-time scheduling may have two different
outcomes deterministically - schedule optimality
- weaker but normally sufficient
- the most frequent objective
- completion times
- stronger but generally infeasible and unnecessary
26Determinism in Soft Real-Time
- Soft real-time scheduling may have four different
deterministic outcomes - schedule optimality
- weakest but normally sufficient
- the most frequent objective
- utility value optimality
- utility values
- completion times
- strongest but generally infeasible and unnecessary
27Predictability In Stochastic Cases
- Stochastic characteristics of the threads and
their execution environments are considered to be
random variables - Scheduling is optimized in expectation
- A predictability measure coefficient of
variation C? variance/mean2 - one endpoint deterministic distribution, C? 0
- the other endpoint EME distribution, C? ?
28Predictability vs. Optimality
- Predictability of schedule optimality is
orthogonal to schedule optimality per se - They must be traded off against one another to
suit specific application/situation requirements
e.g., better ? but worse ? - Hard real-time scheduling is a special case
which, if feasible, is optimal in both dimensions
29Hard and Soft Real-Time Java
- Hard
- deterministic timeliness
- deterministic execution context
- Soft
- everything else (but not que sera sera)
- non-deterministic predictability of timeliness
- non-deterministic execution context
- many different possible cases
30Hard Real-Time Java
- Hard real-time scheduling
- hard deadlines
- deterministic optimal scheduling (meet all hard
deadlines) - Deterministic execution context
- current and future load characteristics
- threads, resource usage, dependencies, conflicts
- resource management
- memory, garbage collection, events, i/o
31Soft Real-Time Java
- Soft real-time scheduling
- soft deadlines or general time constraints
- non-deterministic (or deterministic) optimal or
sub-optimal scheduling - Non-deterministic (or deterministic) dynamic
execution context - load
- resource management
32Examples of Hard Real-Time Java
- JEM?
- More? to be completed . . .
33JEM
34Examples of Soft Real-Time Java
- NewMonics PERC
- to be completed . . .
35NewMonics PERC