160 likes | 438 Views
Embedded Software. Original Paper by: Edward A. Lee Eal@eecs.berkeley.edu Presentation and Review by: Paresh .P. Bafna bafna@usc.edu. What is Embedded Software? . Software Realization of mathematical functions. Like a black box, takes input & gives output.
E N D
Embedded Software Original Paper by: Edward A. Lee Eal@eecs.berkeley.edu Presentation and Review by: Paresh .P. Bafna bafna@usc.edu
What is Embedded Software? • Software • Realization of mathematical functions. • Like a black box, takes input & gives output. • Not much concerned about non-functional aspects. • Embedded software • It executes on machines, which are not computers e.g. … • Its principle role… interact with physical world. • Its works at low level, as its build by experts of that application domain e.g. • Its designed for specific application and so its not scalable e.g. • It has to consider the non-functional aspects.
Just software on small computers? • Timeliness & Concurrency • Computations take time and primary goal is gain control over time. • Plus doing jobs simultaneously i.e. concurrently. • Various ways to implement concurrency are • Interleaving processes. • CPU bound and I/O bound processes. • Various ways to implement timeliness are • Priority. • Statistical speedups e.g. cache schema, branch prediction etc… • Liveness • Turing view of computation Vs Embedded view of computation. • Programs never terminate.
Just software on small computers? cont... • Interfaces • Component technology: exposes interface and hides complexity. • Embedded software should inherit this interface with dynamic properties e.g. • One form of interface is a procedure. Buts its finite computation. • Similarly, OO design uses procedures along with data. Provide interface. • Lee argues that Embedded software is more like processes than procedures. • However, processes get weak, due to porcess1 + process2 != process3. • To allow dynamic composition, type systems along with temporal prop are used. • Heterogeneity • The system mixes computational styles and implementation technologies i.e. • Reactivity • System reacts to various stimuli at the speed of the environment. e.g.
Limitations of present SE methods. • Complex Embedded system would benefit if components were composing other components. Hide details and expose interfaces in well defined manner. • Procedures and Object Orientation • Procedures are terminating. Objects are passive. • Real world is active and more like processes, with proper semantics rooted in physical world. • Embedded software requires is composition of processes and concurrency among processes. • Hardware design • Distinction among hardware and software, from the perspective of computation: • An application with concurrency and temporal content should be thought using hardware abstractions. • An application with no temporal content should be thought using software abstraction. • Embedded software requires system needs of both hardware and software.
Limitations of present SE methods. Cont… • Real time operating system • Embedded software requiring real-time throughput also require low latency. • Most general purpose processors have dedicated resources e.g. • Embedded system are resource constrained and have to use scheduling techniques to allocate resources at run-time. • Key problem in scheduling is the composition of the components. • A chronic priority based scheduling might lead to e.g. priority inversion. • Real-time Object oriented models • These are real-time practices extended for distributed components e.g. real time CORBA. • Scheduling is done by associating priority with event handling and other parameters (importance etc..).
Actor Oriented Design • What do we need? • Approach which constructs complex applications by composing components. • Emphasizing concurrency, communication abstractions along with time constraints. • What do we have? • Actor oriented design, where components are actor with ports and parameters. • Ports for interaction among actors with proper semantics (not call and return). • Actor oriented design described in two ways: • Abstract syntax : system is decomposed into interconnection components without defining its meaning. • Concrete syntax : various abstract syntax along with concrete define how the components fit together.
Actor oriented design cont… • Semantics of Actor oriented design • Component is a process, and connector represents connection between process. • Component may be a state and connector be transition between states. • Semantics may be viewed as architectural patterns called models of computations. • Key challenges for embedded software to choose models of computations • Support concurrency. • Network systems require communication and bandwidth. • Applications may be interconnection of modules and modules written in c, java etc… • Large applications may mix various models of computations.
Examples of models of computation • Data Flow Model • Actors are atomic components triggered by availability of incoming data. • Connection within actors represents data flow from producer to consumer. • Time Triggered • Connection is represented by events driven by some clock. • Components communicate synchronously with other components. • Synchronous/Reactive Model • Connections represents input and output data values aligned with global clock. • Its not necessary that every signal must have a value at every clock tick. • Discrete Event Model • Connections represented by set of events placed on time line, having values and time stamp. • Specially designed for hardware or communication systems
Examples of models of computation cont… • Process Network • Connection represent sequence of data or values of token. • Components that map input data to output using asynchronous buffered mechanism. • Rendezvous Model • Components communicate in synchronous atomic instantaneous action. • Processes exchange data simultaneously, in single step. • Publish and subscribe Model • Connections represented by named event streams. • Consumer component registers and interest in the stream. • Producer component produces and notifies the consumer component.. • Continuous Time Model • Differential equations coupled together to find solutions (time constraints). • Connection represents continuous time signals.
Examples of models of computation cont… • Finite state Machine • Different from all the above model, it is strictly sequential. • Component in the model is a state or mode. Only one state active at a time. • Connection between states represents transition. • It is used for control logic in embedded system and in-depth analysis. • FSM can be hierarchically combined with other concurrent model to get hybrid model called *chart.
Case Study : Ptolemy II • A project at Berkeley emphasizes on heterogeneous combination of models of computation. • Composition of model is formed via the notion of domain polymorphism. • What is domain polymorphism? It’s a property of components…. • The components are used in several domain, their interface is different for different domain. • Application is a set of composed actor, connected together, assigned a domain. • Govern interaction between components and flow of control. • To get hierarchical mixture of domains, the domain must implement executable interface. E.g. three phases, initialization, iteration and termination.
Component Interface • To make the combination of models of computation more systematic, Lee argues that type system concept should be used. • Type system constrains • What a component can say about its interface. • How compatibility is ensured when components are composed. • In order to provide dynamic properties of an interface, system level type system is introduced.
Conclusion • Embedded system requires a different view of computation. As the software engages the physical world. • The system has to consider time and other non-functional properties. • Models of computation with stronger properties are specialized. • This specialization limits the capability, which can be overcome by hierarchically combining heterogeneous models of computations. • System level types capture key features of components, and provides a robust and understandable composition technology.