• Keine Ergebnisse gefunden

Modellierung verteilter Systeme

N/A
N/A
Protected

Academic year: 2021

Aktie "Modellierung verteilter Systeme"

Copied!
23
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Modellierung verteilter Systeme

Grundlagen der Programm und Systementwicklung

Wintersemester 2010/11

Prof. Dr. Dr. h.c. Manfred Broy

Unter Mitarbeit von Dr. M. Spichkova, J. Mund, P. Neubeck

Lehrstuhl Software & Systems Engineering

(2)

Zustandssicht

Systeme als Zustandsmaschinen

(3)

Einleitung

 Systeme besitzen in der Regel Zustände

 Verhalten eines Systems lässt sich durch Übergänge zwischen Zuständen modellieren

 Übergänge können gekoppelt sein mit (ausgelöst werden durch)

Aktionen

Ein- und Ausgabe

 Beispiele

Rechner und Schaltungen

Gatterzustand und Schaltvorgang

Imperative, zuweisungsorientierte Programme

Variablenwerte, Programmzeiger und Zuweisungen, Sprünge

Anwendung bei formalen Sprachen

Reguläre Sprachen als endliche Automaten, Buchstaben auf Übergängen

(4)

Definition: Nichtdeterministische Zustandsmaschine (ZM)

(5)

Beispiel: Zähler

 Zustandsmenge entspricht den natürlichen Zahlen

 Startzustand ist die Null

 Übergang zur nächst größeren Zahl

counter(x) = {x + 1}

 Interpretation als Programm: Zahl als Variable und wiederholtes inkrementieren

 Genau ein unendlicher Ablauf: 0,1, 2, …

0 1 2

(6)

Beispiel: Sortierer

 Zustand besteht aus zwei Sequenzen (s, t) natürlicher Zahlen

 Startzustände sind (, t) mit beliebiger Sequenz t

 Die durch t gegebene Sequenz soll sortiert werden, so dass

schließlich ein Zustand (s, ) erreicht wird, wobei s der Sequenz entspricht, die durch Sortieren aus t entsteht.

 Forderung:

Von jedem Startzustand (, t) wird

nach endlich vielen Schritten der Endzustand (s, ) erreicht,

wobei s der Sequenz entspricht, die durch Sortieren aus t entsteht.

(7)

Beispiel: Sortierer - erzeugt aufsteigende Sortierung

 Diagramm für Permutationen von 1, 2, 2

, 122 1, 22 12, 2 122, 

, 212 2, 12

, 221 2, 21 22, 1

(8)

Definition: Erreichbare Zustände

 Ein Zustand heißt erreichbar, wenn er in einem Ablauf enthalten ist.

 Induktive Konstruktion der Menge R  aller erreichbaren Zustände

 Andere Charakterisierung:

R ist die kleinste Zustandsmenge, die folgende Ungleichung für die Menge R erfüllt

R

) (

R 0



i1

  (

i

) R

 

i

i0

U

(9)

Definition: Permanente Invariante & Stabiles Prädikat

 Wir übertragen die Beweismethode der Induktion auf Zustandsmaschinen:

 Ein Prädikat auf Zuständen p:   B heißt (permanente) Invariante, wenn p für alle erreichbaren Zustände gilt

 Ein Prädikat auf Zuständen p:   B heißt stabil, wenn für alle Zustände  und ’ gilt:



p() '   ()  p(')

(10)

Zusammenhang von Stabilität und Invarianz

 Sei p:   B ein Prädikat auf Zuständen einer ZM Δ 0, dann gilt:

Ist p stabil und gilt für jeden Anfangszustand 0  0, dann ist p eine permanente Invariante.

 Sei p:   B eine permanente Invariante und q:   B ein Prädikat auf Zuständen. Gilt für jeden (erreichbaren) Zustand 

dann ist auch q eine permanente Invariante.



p()  q()

(11)

Definition: Nichtdet. ZM mit markierten Übergängen

 Eine nichtdeterministische ZM mit markierten Übergängen Δ A, 0 besteht

aus einer Zustandsmenge ,

einer Aktionsmenge A,

Anfangszuständen 0   (oder einem 0  ) und einer

Zustandsübergangsfunktion Δa:   () für jedes a  A.

 Eine Aktion a  A heißt bereit im Zustand   , wenn

Δa() ≠ 

gilt.

Wir schreiben dann enabled(a, )

(12)

Definition: Nichtdet. ZM mit markierten Übergängen

 Für ‘  Δa() schreiben wir kurz

 Eine ZM mit markierten Übergängen ist deterministisch,

wenn für jede Aktion a  A und jeden Zustand    die Menge der Nachfolgezustände

{‘   : ‘  Δa() } höchstens ein Element enthält.



  

a

 

(13)

Beispiel: Keller

Wir modellieren einen Keller über der Datenmenge Data mit

 der Zustandsmenge Data*

 den Aktionen

Astack = {initStack, pop}  {top(d) : d  Data}  {push(d) : d  Data}

 und der Übergangsfunktion



initStack(s) {}

pop(s) {s : d  Data :s  d os }

push(d)(s) { d os}

top(d)(s) {s} falls first (s) d

 sonst





(14)

Zustandsdiagramme

 Ein Zustandsdiagramm ist ein gerichteter Graph.

 Knoten heißen Kontrollzustände und stellen Mengen von Zuständen dar.

 Eine Zusicherung in einem Knoten charakterisiert dessen Zustandsmenge

 Bei markierten Zustandsmaschinen werden Kanten mit Aktionen markiert

 Kanten können mit einer Vorbedingung Q() und einer Nachbedingung R(, ‘) genau spezifiziert werden.

 Der Anfangszustand ist mit einem Pfeil mit Punkt als Anfang gekennzeichnet.

(15)

Modellierung der Zustände mit Variablen/Attributen

 Menge von Variablennamen (Identifikatoren) V

 Menge von Variablenwerten M

 Jede Variablenbelegung

: V  M beschreibt einen Zustand

 Zustandsraum ist  = (V  M)

 Den Variablen können Sorten zugeordnet sein

 Prädikate über Zustände (Zusicherungen) werden über Variablen formuliert

(16)

Zustandssicht

Systeme als Zustandsmaschinen

(17)

Definition: Zustandsmaschinen mit Ein- und Ausgabe

 Eine nichtdet. ZM Δ 0 mit Eingabealphabet I und

Ausgabealphabet O besteht aus einer Zustandsmenge , Anfangszuständen 0   (oder einem 0  ) und einer Zustandsübergangsfunktion Δ:   I  (  O)

 Solche ZM heißen auch Mealy-Automaten

Ausgabe hängt von Eingabe und Zustand ab

 Spezialfall Moore-Automaten

Ausgabe hängt nur vom Zustand ab

 Für (‘, o)  Δa(, i) schreiben wir kurz

 Notation für Übergänge in Diagrammen

i /o '

(18)

Beispiel: Warteschlange als Zustandsmaschine

Sort Input = Data {®}

Sort Output = Data {®}

I = {(x : d) : d  Input}

O = {(y : d) : d  Output}

Empty Nonempty

x: d / - {q’ = q  d}

{q = d  q’  q’ =/= } x:  / y: d x: d / - {q’ = q  d}

x:  / y:  {q’ = }

(19)

Darstellung von Zustandsmaschinen

 Analytisch mit Mitteln der Mathematik und Logik

 Graphisch mit Zustandsübergangsdiagrammen

 Tabellarisch

 Als Matrix

 In der Notation einer Programmiersprache

(20)

Beispiel: Speicherzelle

Analytische Darstellung Graphische Darstellung

(21)

Tabellarische Darstellung

 Eingabe in Zeilen, Zustände in Spalten

 Deterministischer Mealy-Automat

Übergangstabelle: Zielzustand im Kreuzungspunkt

Ausgabetabelle: Ausgabezeichen im Kreuzungspunkt

 Deterministischer Moore-Automat

Übergangstabelle, Kennzeichnung der Spalten mit Ausgabe

(22)

Tabellarische Darstellung ff.

Logikbasierte Tabelle

Bsp. Speicherzelle gemäß der Formel

(, a)={(‘,b)}

Jede Zeile definiert einen Übergang

Richtige Auswahl der logischen Formel erlaubt sehr kompakte Darstellung

(23)

Matrix-Darstellung

 Mealy-Automat

|| = n; nn-Matrix (mij)

Existiert Übergang dann mij = x/y

Sonst mij = –

 Moore-Automat

|| = n; nn-Matrix (mij); n-Vektor (vi)

Existiert Übergang dann mij = x und vi = y

Sonst mij = –



Si  x/y Sj



Si  x/y Sj

Referenzen

ÄHNLICHE DOKUMENTE

 Äquivalenzbegriffe für Zustände (erweiterbar auf Mengen von Zuständen und Zustandsmaschinen) von Maschinen mit markierten Übergängen:.

Verfeinerung (engl. Refinement) adressiert die Beziehung zwischen Systemmodellen, wie sie im Verlauf einer Entwicklung mit immer mehr Details entstehen..  Formal ist

 In einem Zeitintervall können beliebig viele Nachrichten auf einem Kanal ausgetauscht werden.  Perfekte Synchronie (engl.

Jeder Kundenfunktion werden die logischen Komponenten zugeordnet, die an der. Erbringung der Kundenfunktion

(3) Wenn ein stabiles Pr¨ adikat in allen Startzust¨ anden gilt, gilt es auch f¨ ur alle erreichbaren Zust¨

ƒ Telekommunikationssysteme sind von den technischen Randbedingungen und somit auch von der technischen Architektur ähnlich zu eingebetteten Systemen (spezifische Hardware,

Da es sowohl für den Test des realen Systems als auch seiner Simulations- modelle wiederum bereitgestellter Datensätze verschiedener angenommener Erdbebenereignisse bedarf, die

Will man solche Erweiterungen der Sprache der While-Programme zulassen, so muss eine geeigne- te Syntax f¨ur diese Konstrukte gew¨ahlt werden und entsprechende Syntax-Regeln