33
fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 2008/11/15

Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

Embed Size (px)

Citation preview

Page 1: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

fakultät für informatikinformatik 12

technische universität dortmund

Specifications

Peter MarwedelTU Dortmund,Informatik 12

Gra

phic

s: ©

Ale

xand

ra N

olte

, Ges

ine

Mar

wed

el, 2

003

2008/11/15

Peter Marwedel
Lecture a bit shorter than the rest: some time left for slides remaining from lecture 1.
Page 2: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 2 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Structure of this course

New clustering

2: Specifications

3: Embedded System HW

4: Standard Software, Real-Time Operating Systems

5: Scheduling,HW/SW-Partitioning, Applications to MP-Mapping

6: Evaluation

8: Testing

7: Optimization of Embedded Systems

App

licat

ion

Kno

wle

dge

Page 3: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 3 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Motivation for considering specs

Why considering specs?

If something is wrong with the specs, then it will be difficult to get the design right, potentially wasting a lot of time.

Why not just use standard languages like Java, C++ etc?

Example demonstrating weakness

time

Page 4: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 4 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Consider a Simple Example

“The Observer pattern defines a one-to-many dependency between a subject object andany number of observer objectsso that when the subject object changes state,all its observer objects are notified and updated automatically.”

Eric Gamman Richard Helm, Ralph Johnson, John Vlissides: Design Patterns, Addision-Wesley, 1995

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

Page 5: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 5 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Example: Observer Pattern in Java

public void addListener(listener) {…}

public void setValue(newvalue) {

myvalue=newvalue;

for (int i=0; i<mylisteners.length; i++) {

myListeners[i].valueChanged(newvalue) }}

Thanks to Mark S. Miller for the details of this example.

Will this work in a multithreaded context?

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

Page 6: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 6 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Example: Observer Patternwith Mutual Exclusion (mutexes)

public synchronized void addListener(listener) {…}

public synchronized void setValue(newvalue) {

myvalue=newvalue;

for (int i=0; i<mylisteners.length; i++) {

myListeners[i].valueChanged(newvalue) }} Javasoft recommends against this.

What’s wrong with it?

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

Page 7: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 7 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Mutexes using monitors are minefields

public synchronized void addListener(listener) {…}

public synchronized void setValue(newvalue) {

myvalue=newvalue;

for (int i=0; i<mylisteners.length; i++) {

myListeners[i].valueChanged(newvalue) }}

valueChanged() may attempt to acquire a lock on some other object and stall. If the holder of that lock calls addListener(): deadlock!

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

x calls addListener

valueChanged

requests

lock

held

by

x

mutex

Page 8: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 8 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Simple Observer PatternBecomes not so simple

public synchronized void addListener(listener) {…}

public void setValue(newValue) {

synchronized (this) {

myValue=newValue;

listeners=myListeners.clone();

}

for (int i=0; i<listeners.length; i++) {

listeners[i].valueChanged(newValue) }}

while holding lock, make a copy of listeners to avoid race conditions

notify each listener outside of the synchronized block to avoid deadlock

This still isn’t right.What’s wrong with it?

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

Page 9: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 9 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Simple Observer Pattern:How to Make it Right?

public synchronized void addListener(listener) {…}

public void setValue(newValue) {

synchronized (this) {

myValue=newValue;

listeners=myListeners.clone();

}

for (int i=0; i<listeners.length; i++) {

listeners[i].valueChanged(newValue) }}

Suppose two threads call setValue(). One of them will set the value last, leaving that value in the object, but listeners may be notified in the opposite order. The listeners may be alerted to the value-changes in the wrong order!

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

Page 10: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 10 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

What it Feels Liketo Use the synchronized Keyword in Java

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

Page 11: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 11 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Succinct Problem Statement

Threads are wildly nondeterministic.

The programmer’s job is to prune away the nondeterminism by imposing constraints on execution order (e.g., mutexes).

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

Page 12: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 12 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

A stake in the ground …

Nontrivial software written with threads, semaphores, and mutexes is incomprehensible to humans.

© Ed Lee, Berkeley, Artemis Conference, Graz, 2007

Page 13: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 13 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Problems with thread-based concurrency

“… threads as a concurrency model are a poor match for embedded systems. … they work well only … where best-effort scheduling policies are sufficient.”

Ed Lee: Absolutely Positively on Time, IEEE Computer, July, 2005

Page 14: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 14 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Problems with classical CS theoryand von Neumann computing (1)

“The lack of timing in the core abstraction is a flaw, from the perspective of embedded software, …”

Ed Lee: Absolutely Positively on Time, IEEE Computer, July, 2005

“Timing is everything” Frank Vahid, WESE 2008

Page 15: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 15 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Problems with classical CS theoryand von Neumann computing (2)

Even the core … notion of “computable” is at odds with the requirements of embedded software.

In this notion, useful computation terminates, but termination is undecidable.

In embedded software, termination is failure, and yet to get predictable timing, subcomputations must decidably terminate.

What is needed is nearly a reinvention of computer science.

Ed Lee: Absolutely Positively on Time, IEEE Computer, July, 2005

Search for non-thread-based, non-von-Neumann MoCs; which are the requirements for specification techniques?

Page 16: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 16 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Specification of embedded systems: Requirements for specification techniques (1)

HierarchyHumans not capable to understand systemscontaining more than ~5 objects.Most actual systems require more objects Hierarchy

• Behavioral hierarchyExamples: states, processes, procedures.

• Structural hierarchyExamples: processors, racks,printed circuit boards

Compositional behaviorMust be “easy” to derive behavior frombehavior of subsystems

Concurrency, Synchronization and communication

proc proc proc

Page 17: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 17 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Requirements for specification techniques (2)Timing

4 types of timing specs required, according to Burns 1990]:

t

? execute

1. Measure elapsed timeCheck, how much time has elapsed since last call

Timing behaviorEssential for connecting to physical environment

• Additional information (periods, dependences, scenarios, use cases) welcome

• Also, the speed of the underlying platform must be known

• Far-reaching consequences for design processes!

Page 18: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 18 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Requirements for specification techniques (3)Timing (2)

3. Possibility to specify timeoutsStay in a certain state a maximum time.

4. Methods for specifying deadlinesNot available or in separate control file.

t

execute

2. Means for delaying processes

t

Page 19: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 19 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Specification of embedded systems (4): Support for designing reactive systems

State-oriented behaviorRequired for reactive systems;classical automata insufficient.

Event-handling(external or internal events)

Exception-oriented behaviorNot acceptable to describe exceptions for every state

We will see, how all the arrows labeled k can be replaced by a single one.

Page 20: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 20 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Requirements for specification techniques (5)

Presence of programming elements Executability (no algebraic specification) Support for the design of large systems ( OO) Domain-specific support Readability Portability and flexibility Termination Support for non-standard I/O devices Non-functional properties Support for the design of dependable systems

Unambiguous semantics, ... No obstacles for efficient implementation Adequate model of computation

Page 21: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 21 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Models of computation- Definition -

What does it mean, “to compute”?

Models of computation define:

Components and an execution model for computations for each component

Communication model for exchange of information between components.

• Shared memory

• Message passing

• …

C-1

C-2

Page 22: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 22 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Communication

Shared memory

memoryComp-1 Comp-2

Variables accessible to several tasks.

Model is useful only for local systems.

Page 23: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 23 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Shared memory

Potential race conditions (inconsistent results possible) Critical sections = sections at which exclusive access to resource r (e.g. shared memory) must be guaranteed.

process a { .. P(S) //obtain lock .. // critical section V(S) //release lock}

process b { .. P(S) //obtain lock .. // critical section V(S) //release lock}

Race-free access to shared memory protected by S possible

This model may be supported by:mutual exclusion for critical sectionscache coherency protocols

Page 24: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 24 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Non-blocking/asynchronous message passing

Sender does not have to wait until message has arrived; potential problem: buffer overflow

…send ()…

…receive ()…

Page 25: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 25 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Blocking/synchronous message passingrendez-vous

Sender will wait until receiver has received message

…send ()…

…receive ()…

Page 26: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 26 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Extended rendez-vous

…send ()…

…receive ()…ack…

Explicit acknowledge from receiver required. Receiver can do checking before sending acknowledgement.

Page 27: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 27 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Components (1)

Discrete event model

abc

timeactiona:=5 b:=7 c:=8 a:=6 a:=9

queue

5 10 13 15 1957

8

6

Von Neumann model

Sequential execution, program memory etc.

Page 28: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 28 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Components (2)

Finite state machines

Differential equations

bt

x

2

2

Page 29: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 29 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Combined models- languages presented later in this chapter -

SDL FSM+asynchronous message passing

StateChartsFSM+shared memory

CSP, ADAvon Neumann execution+synchronous message passing

….

See also Work by Ed Lee, UCB Axel Jantsch: Modeling Embedded Systems and Soc's: Concurrency and

Time in Models of Computation, Morgan-Kaufman, 2004

Page 30: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 30 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Models of computation considered in this course

Communication/local computations

Shared memory

Message passingSynchronous | Asynchronous

Communicating finite state machines

StateCharts SDL

Data flow model

Not useful Simulink Kahn process networks, SDF

Computational graphs

Sequence dia-gram, Petri nets

Von Neumann model

C, C++, Java

C, C++, Java with librariesCSP, ADA |

Discrete event (DE) model

VHDL, … Only experimental systems, e.g. distributed DE in Ptolemy

Page 31: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 31 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Ptolemy

Ptolemy (UC Berkeley) is an environment for simulating multiple models of computation.

Available examples are restricted to a subset of the supported models of computation.

http://ptolemy.berkeley.edu/

Ptolemy simulations

Newton‘s craddle

Page 32: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 32 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Facing reality

No language that meets all language requirements using compromises

Page 33: Fakultät für informatik informatik 12 technische universität dortmund Specifications Peter Marwedel TU Dortmund, Informatik 12 Graphics: © Alexandra Nolte,

- 33 -technische universitätdortmund

fakultät für informatik

p. marwedel, informatik 12, 2008

Summary

Non-deterministic thread-based concurrency results in problems

Search for other models of computation =

• models of components- finite state machines (FSMs)

- data flow, ….

• + models for communication- Shared memory

- Message passing