3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation:

Slides:



Advertisements
Ähnliche Präsentationen
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Advertisements

Sortieren I - Bubblesort -
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Vs61 6 Verteilte Datenverwaltung. vs62 Ziel:Zusammengehöriger Datenbestand soll über mehrere Stationen verteilt werden, z.B. Fragmentierung: in mehrere.
Terminierung und Deadlocks Enkhbat Daginaa Betreuerin Prof. Heike Wehrheim Totale Korrektheit.
Nebenläufigkeit Teil I
Threads Richard Göbel.
Java: Dynamische Datentypen
Listen Richard Göbel.
Formale Sprachen – Mächtigkeit von Maschinenmodellen
Konstruktoren.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (04 – Automaten mit ε-Transitionen) Prof. Dr. Th. Ottmann.
Das Strukturmuster Kompositum von C. Günther, T. Hammerschmidt und D. Kuhn.
7 Verteilungsabstraktion
6 Folgen (Teil II - Datenstrukturen und Algorithmen)
Beispiele für Ausdrucksalgebren
Eine (Gleichungs-)Spezifikation ist ein Paar SPEC = (, E),
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Vorlesung 10 Mutual Exclusion Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische Fakultät.
Einführung von Groupware
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Klassen und Objekte
15.1 Synchronisation nebenläufiger Prozesse
Transaktion 1Transaktion 2... Transaktion n Synchronisation durch Scheduler Datenbasis-Verwalter lokaler Schedule 1lokaler Schedule n konfliktserialisierbarer.
Kollektionstypen (1) Es sind polymorphe Typkonstruktoren, jeweils als Sorten- und als Klassenkonstruktor (t,v beliebige Typen): –set, Set :Ungeordnete.
Recovery AIFB SS (1/8) Sicherungspunkte (Checkpoints) (1/8) (1) Transaktions-Orientierte Sicherungspunkte Transaction-Oriented Checkpoint.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Stacks Referat im Fach Basisinformationstechnologien von Venelina Koleva.
Werkzeugunterstützte Softwareadaption mit Inject/J
FH-Hof Adapter & Facade Pattern Richard Göbel. FH-Hof Motivation Gegeben ist eine Klasse mit vorhandenen Methoden Gefordert ist eine Klasse, die ein bestimmtes.
Tino Reindanz - FSU Jena Seminar Aktive Datenbanken – SS 2007 Folie 1 Seminar Aktive Datenbanken Rule Development Rule Development for Active Database.
Grundkonzepte Java - Klassendefinition
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Programmierung paralleler Algorithmen mit MPI
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Effiziente Algorithmen
6.5 Lindas Tupelraum Interaktion von Prozessen über zentralen Umschlagplatz für alle zwischen Prozessen ausgetauschten Daten: Tupelraum (tuple space) (Carriero/Gelernter,
Mark & Sweep Seminar Softwareentwicklung: Garbage Collection Eva Schartner.
Elternvereinshauptversammlung der BAKIP21
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Vorbesprechung Serie 9 Ax(ExR(x) Q(x)) wird identifiziert mit Ax(EzR(z) Q(x)) Skript S.101 & 102: ~AxP(x) Ex~P(x) ~ExP(x) Ax~P(x) Ax(P(x)/\Q(x)) AxP(x)
Synchronisation paralleler Transaktionen AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (11/13) Vermutung: Eine Schedule S.
Transaktion Huang Zhenhao FU Shuai.
Thread Synchronisation in JAVA
Zustandsübergangsdiagramme (1)
Grundsätzliches zu Prozessen  Grundbegriffe
EPROG Tutorium #5 Philipp Effenberger
Präsentiert….
Mehrbenutzerzugriff auf GIS-Daten
2. Kommunikation und Synchronisation von Prozessen 2
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
6.1.2 Sequentielle Konsistenz
10 Graphen gerichtete und ungerichtete, mit Marken an Ecken und/oder Kanten Anwendungsgebiete: Verkehrsnetze, Kommunikationsnetze, Netzpläne, Spiele,...
Serialisierbarkeitsprinzip Isolationsprinzip scheint zunächst streng serielle Abwicklung der Transaktionen zu fordern: r 1 (x) r 1 (y)... w 1 (z) c 1 r.
1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann.
Synchronisation paralleler Transaktionen  AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/3) Typen von Synchronisationsverfahren.
Vs51 5 Verteilte Datenverwaltung. vs52 Situation:Zusammengehöriger Datenbestand ist über mehrere Stationen verteilt, z.B. Fragmentierung: in mehrere Fragmente.
3 Interaktion über Objekte. 3.1 Sperrsynchronisation dient der Vermeidung unkontrollierter nebenläufiger Zugriffe auf gemeinsame Datenobjekte und der.
5.1.2 Sequentielle Konsistenz
1 3 Interaktion über Objekte Sperrsynchronisation dient der Vermeidung unkontrollierter nebenläufiger Zugriffe auf gemeinsame Datenobjekte und.
Nichtsequentielle Programmierung Klaus-Peter Löhr Freie Universität Berlin WS 2002/03.
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Bruno Weber-Gobet, Leiter Bildungspolitik Travail.Suisse Nationale Konferenz zum Thema ältere Arbeitnehmende.
Dokumentenproduktion im Medienzentrum
 Präsentation transkript:

3.1.7 Korrektheit von Objekten Voraussetzung für die Diskussion der Korrektheit von nichtsequentiell benutzten abstrakten Objekten: Modellbasierte Spezifikation: Z = abstrakte Zustandsmenge eines Objekts { P } op(...) { Q } = auf Z bezogene Spezifikation, für jede Operation op Voraussetzung Effekt (precondition) (postcondition)

Szenario: Abläufe, an denen ein Objekt sowie mehrere nebenläufige Prozesse beteiligt sind, deren Aktionen Ausführungen von Operationen auf dem Objekt sind. Das Ergebnis eines Ablaufs besteht aus - dem abstrakten Endzustand des Objekts - und den Folgen der Aufrufergebnisse für die beteiligten Prozesse.

Beispiel mit 2 Prozessen: P: s.push('1'); x = s.pop(); Q: s.push('a'); s.push('b'); y = s.pop(); Mögliche Abläufe mit möglichem Ergebnis: P: push pop x == 'a' Q: push push pop y == 'b' s == "1" P: push pop x == '1' Q: push push pop y == 'b' s == ""

Ein Ablauf ohne Überlappungen von Aktionen heißt seriell. Mögliche serielle Abläufe mit Ergebnis: P: push pop x == 'a' Q: push push pop y == 'b' s == "1" P: push popx == '1' Q: push push popy == 'b' s == "a"

Def. 1:Zwei Abläufe heißen äquivalent, wenn ihre Ergebnisse gleich sind. Beispiel:Von den Abläufen sind nur und äquivalent. Def. 2:Ein Objekt heißt serialisierbar, wenn es zu jedem möglichen Ablauf A einen äquivalenten seriellen Ablauf (Serialisierung von A) gibt. Beispiel:Zu gibt es den äquivalenten seriellen Ablauf. Zu gibt es aber keinen – also ist das Objekt nicht serialisierbar.

Standard-Forderung für Korrektheit in nichtsequentiellen Umgebungen: (seq.) Korrektheit + Serialisierbarkeit Bemerkungen:Monitore (der bisher betrachteten Art) sind serialisierbar (weil es a priori nur serielle Abläufe gibt). Serialisierbarkeit kann u.U. auch mit schwächerer Synchronisation erreicht werden (3.1.6 ).3.1.6

Außerdem:Mitunter verzichtet man auf die Serialisierbarkeit, d.h. man läßt zu, daß ein Ablauf mit Überlappungen ein Ergebnis haben kann, das durch keine Serialisierung des Ablaufs erzielt werden kann. Konsequenz: Spezifikation muß explizit die zusätzlichen Effekte angeben (und eingrenzen!), die bei Überlappungen auftreten können.

Beispiel: interface SortedSet { // s :: Set // initially empty boolean add(Object x); // pre: - // post: s == union 's {x} boolean replace(Object old, Object new); // pre: contains s old // post: s == union(diff 's {old}) {new} void iterate(Operation op); // pre: all(\x->pre op x)s // post: all(\x->post op x)s && s=='s }

1. Realisierung als Monitor wäre zu restriktiv – angesichts des u.U. langwierigen iterate ! 2. Dennoch Serialisierbarkeit zu fordern könnte die Implementierung sehr schwierig machen (?). 3. Es könnte für die Anwendung akzeptabel sein, daß ein Ersetzen ( replace(old,new) ) während einer Traversierung ( iterate ) dazu führen könnte, daß die Traversierung sowohl old als auch new berührt – oder auch keines von beiden. Beispiel: Ausdrucken einer aktuellen Teilnehmerliste, an der laufend Veränderungen durchgeführt werden. 4. Die Spezifikation muß entsprechend erweitert werden.