Saturday, February 6, 2010

EMBEDDED SOFTWARE PROPERTIES


EMBEDDED SOFTWARE PROPERTIES

• Timeliness
• Concurrency
• Liveness
• Interfaces
• Heterogeneity
• Reactivity


TIMELINESS

• Time: systematically removed from theories of computation
• RTOSes often reduce the characterization of a task to a single number (its priority)
• But: computation does take time
– However, even with infinitely fast computers, time would still have to be dealt with
• Physical processes evolve over time
• Need to find abstractions that regain control of time!


CONCURRENCY


• In the physical world, multiple things happen at once
• Challenge: reconcile sequentially of software with the concurrency of the real world
– Classic approaches (semaphores, monitors etc) provide good foundation
• But: potentially insufficient
– One approach: compile concurrency away (Estrel)
• Estrel: synchronous/reactive language
– FSM based, deterministic behavior
• Pros: Higly reliable programs
• Cons: Too static for some systems
– Middle ground is needed



LIVENESS


• Programs must not terminate
– Unlike the traditional Turing model of computation, halting is undesirable
–Deadlock is an absolute ‘no- no’
• Correctness isn’t just about getting the right final answer
– Must consider things like timing, power consumption, fault recovery, security and robustness



REACTIVITY


• Interactive systems:
– react at their own speed (or the speed of the controlling human)
• Transformational systems
– Transform a data input to a data output (e.g. matrix multiplication)
• Reactive systems
– react continuously with environment, at the same speed
– Must adapt to changing conditions
• Resources and demands may change frequently
– Real-time constraints
– Safety-critical
• Fault-tolerance can be a major issue

No comments:

Post a Comment