Modellierung und Analyse mittels FSPs Analysevefahren am Beispiel Wechselseitiger Ausschluß
|
|
- Ulrike Giese
- vor 6 Jahren
- Abrufe
Transkript
1 Modellierung und Analyse mittels FSPs Analysevefahren am Beispiel Wechselseitiger Ausschluß Analyse von nebenläufigen Prozessen 1
2 Übersicht Beispielproblem: Interferenz von Prozessen und wechselseitiger Ausschluß (mutual exclusion). Modellierung:FSP Modell Analyse: Testen Komposition mit Fehlerdetektionsprozeß Zustandsraumexploration Minimierung Analyse von nebenläufigen Prozessen 2
3 Interferenz Ornamental Garden Problem: Besucher betreten einen Park durch zwei Eingänge mit Drehkreuzen. Die Verwaltung möchte zu jedem Zeitpunkt über die aktuelle Anzahl Besucher informiert sein. Park West Turnstile Besucher East Turnstile Das nebenläufige Programm besteht aus zwei Threads und einem geteilten Objekt zur Zählung der Besucher. Analyse von nebenläufigen Prozessen 3
4 Ornamental Garden Programm - Klassendiagramm Applet Thread Garden east,west Turnstile people Counter init() go() run() increment() eastd, westd, counterd NumberCanvas setvalue() display display Der Turnstile Thread simuliert periodische Ankünfte von Besuchern (1 je Sekunde) durch Warten und Aufruf der Methode increment() für das Counter Objekt. Analyse von nebenläufigen Prozessen 4
5 Ornamental Garden Programm - Display Nachdem East und West Turnstile Threads jeweils 20 mal ein increment() durchgeführt haben, zeigt der Zähler nicht die Summe der beiden Turnstile Aufrufe! Einige Zählererhöhungen sind verloren gegangen, warum? Analyse von nebenläufigen Prozessen 5
6 Aktivierung nebenläufiger Methoden Die Aktivierung von Java Methoden ist nicht atomar- Threads East und West können gleichzeitig den Code für die Inkrement Methode ausführen. west PC program counter geteilter Code increment: read value write value + 1 east PC program counter Analyse von nebenläufigen Prozessen 6
7 Ornamental Garden Modell go end go end arrive value east: TURNSTILE go end arrive value west: TURNSTILE value:var read write GARDEN display Der Prozeß VAR modelliert Lese- und Schreibzugriffe auf den geteilten Zähler value. Increment() intern in TURNSTILE modelliert, weil Aktivierung von Java Methoden nicht atomar. Interleaving bei Lese- und Schreibzugriffen Analyse von nebenläufigen Prozessen 7
8 Ornamental Garden Modell const N = 4 range T = 0..N set VarAlpha = { value.{read[t],write[t]} } VAR = VAR[0], VAR[u:T] = (read[u] ->VAR[u] write[v:t]->var[v]). Alphabet des Prozesses VAR explizit als set Konstante, VarAlpha. TURNSTILE = (go -> RUN), RUN = (arrive-> INCREMENT end -> TURNSTILE), INCREMENT = (value.read[x:t] -> value.write[x+1]->run )+VarAlpha. GARDEN = (east:turnstile west:turnstile { east,west,display} ::value:var) /{ go /{ east,west}.go, end/{ east,west}.end}. Alphabet von TURNSTILE um VarAlpha erweitert damit keine freien Aktionen in VAR auftreten, dh alle Aktionen in VAR sind von TURNSTILE kontrolliert. Analyse von nebenläufigen Prozessen 8
9 Fehlersuche mittels Testen - Animation Testen eines Szenario - erzeuge einen Trace. Ist dieser Trace korrekt? Analyse von nebenläufigen Prozessen 9
10 Testalgorithmus - rudimentär s ist initialer Zustand while ( s STOP ) do for all od return od ( s, x, s ) ask user if selected then append(trace,x) ; s = s ; Wesentliche Anforderung an Modellwelt ist eine berechenbare Funktion (genauer Relation) zur Bestimmung aller Übergänge für einen Zustand s. In FSP durch Angabe einer syntaktischen Ableitungsregel je Operator. Analyse von nebenläufigen Prozessen 10
11 Ableitungsregeln für Transitionsrelation Beispiel: parallele Komposition sei P Π, Q Π a A Für P Q wird durch folgende Regeln erzeugt: Π ist ERROR Prozeß P a P P a Q P Q a αq P Q Q a Q a P Q a αp P a a P, Q Q a P Q P Q a τ Analyse von nebenläufigen Prozessen 11
12 Beispielberechnung zur Transitionsrelation (east:turnstile west:turnstile {east,west,display}::value:var) /{ go/{east,west}.go, end/{east,west}.end } go (east:run west:run {east,west,display}::value:var) /{ go/{east,west}.go, end/{east,west}.end } east.arrive west.arrive (east:increment west:run {east,west,display}::value:var) /{ go/{east,west}.go, end/{east,west}.end } Nachfolgerberechnung durch textuelle Manipulation der Prozeßbeschreibung textuelle Ersetzung gemäß Regeln für ->,, und Rekursion. Analyse von nebenläufigen Prozessen 12
13 Spezielles Problem bei Prozeßalgebren Transitionsrelation liefert jeweils vollständige Prozeßbeschreibung als Nachfolgezustand Gleichheit von Zuständen als Gleichheit von Prozessen in FSP Unterschiedliche Definitionsmöglichkeiten Gleichheit als Gleichheit von Strings (naheliegend) Gleichheit unter Berücksichtigung von geltenden Kommutativ- und Assoziativgesetzen z.b. bzgl Choice und Parallel Composition Gleichheit falls jeweils gleiche Übergänge möglich sind und diese auch zu wechselseitig gleichen Nachfolgern führen (Bisimulation,starke Äquivalenz) Test auf Gleichheit in jedem Fall aufwendig, hier Gleichheit von Strings betrachtet Analyse von nebenläufigen Prozessen 13
14 Zustandsraumexploration - Abbildung FSP -> LTS Unterschiedliche Sichtweisen Ableitung des LTS aus FSP Transitiver Abschluß der Erreichbarkeitsrelation Γ wobei ( s0, s0) Γ und x T ( s, x, s ) ( s, bei nebenläufigen Prozessen tritt kombinatorische Explosion auf (Zustandsraumexplosion) Unterschiedliche Implementierung von Explorationsverfahren Graphalgorithmen (DFS,BFS) zum Durchlaufen gerichteter Graphen : s ) Γ Bitstate Hashing (SPIN) verteilte Algorithmen, Zuordnung von Adreßbereichen zu Prozessoren Divide&Conquer mit Perfect Hashing (Kronecker Verfahren) Matrixpotenzierung (zu aufwendig) Symbolic Modelchecking: BDDs zur Kodierung einer binären Relation und zur Berechnung des transitiven Abschlusses i.a. zusätzliches Problem: Erkennung unendlicher Zustandsräume Analyse von nebenläufigen Prozessen 14
15 Algorithmus zur Zustandsraumexploration - DFS/BFS s ist initialer Zustand, while ( N {} ) do entferne s aus N for all od od if then S = N = {s} ( s, x, s ) s S S = S { s }; N = N { s } Resultat: Menge aller erreichbaren Zustände S Wesentliche Anforderungen an die Modellwelt sind: a) Nachfolgerelation, b) Test auf Gleichheit. Datenstruktur für N: bei DFS Stack, bei BFS Queue Crux: Platzbedarf, eff. Such-/Einfügeoperation bei großem S und N. Analyse von nebenläufigen Prozessen 15
16 Zustandsraumexploration - Eigenschaften ermitteln Welche Eigenschaften sind erkennbar? Erreichbarkeit von Zuständen mit besonderen Eigenschaften Durchführbarkeit von Abläufen, Sequenzen von Aktionen Wie lassen sich Eigenschaften beschreiben & erkennen? Spezielle Zustände als Teilmenge des Zustandsraum leicht charakterisierbar, Erkennung entspricht Existenztest im Zustandsraum Beschreibung von Abläufen oder Zuständen durch zusätzliches beobachtendes Teilmodell, das ggfs Deadlock/ERROR bewirkt. Impliziert Transformation des Modells und Existenztest bzgl spezieller Zustände im LTS Eigenschaftsbeschreibung durch eigene Sprache (Modale Logik) und Evaluation am LTS durch spezielle Verfahren (Graphalgorithmen) Für Benutzerinteraktion wichtig: Angabe eines Zeugen, falls eine Eigenschaft vorliegt Angabe eines Gegenbeispiels, falls eine Eigenschaft nicht gilt Analyse von nebenläufigen Prozessen 16
17 Algorithmus für erschöpfende Suche nach ERROR Zuständen mit BFS s ist initialer Zustand, while ( N {} und s ERROR) do entferne s aus Queue N for all od od ( s, x, s ) s S if then enqueue(n,s ); S = N = {s} S = S {s}; Falls ERROR gefunden, muß abschließend Pfad in S ermittelt werden. Alternativ: je Zustand s Triple (s,x,s ) merken,... BFS vorteilhaft zur Bestimmung kürzester Pfade. Analyse von nebenläufigen Prozessen 17
18 Fehlersuche mittels erschöpfender Suche Das Modell wird mit einem TEST Prozeß komponiert, der die Summe der Ankünfte mit dem angezeigten Wert vergleicht: TEST = TEST[0], TEST[v:T] = (when (v<n){east.arrive,west.arrive}->test[v+1] end->check[v] ), CHECK[v:T] = (display.value.read[u:t] -> (when (u==v) right -> TEST[v] when (u!=v) wrong -> ERROR ) )+{display.varalpha}. Wie STOP, nur ERROR ist ein vordefinierter FSP Prozeß mit fester Zustandsnummer -1 im LTS. Analyse von nebenläufigen Prozessen 18
19 Ornamental Garden Modell - Fehlersuche TESTGARDEN = (GARDEN TEST). Mit LTSA erschöpfende Suche nach ERROR. Trace zum Fehlerfall in TEST: go east.arrive east.value.read.0 west.arrive west.value.read.0 east.value.write.1 west.value.write.1 end display.value.read.1 wrong LTSA produziert den kürzesten Pfad zum ERROR Zustand. BFS oder DFS? Analyse von nebenläufigen Prozessen 19
20 Interferenz und wechselseitiger Ausschluß Ein destruktives Update, das durch beliebiges Interleaving aus Lese- und Schreiboperationen erzeugt wird, heißt Interferenz. Fehler durch Interferenz sind schwer zu lokalisieren. Generelle Lösung: Methoden dürfen nur im wechselseitigen Ausschluß auf geteilte Objekte zugreifen. Wechselseitiger Ausschluß kann durch atomare Aktionen modelliert werden. (klassisches Thema in Vorlesung Betriebssysteme) Analyse von nebenläufigen Prozessen 20
21 Wechselseitiger Ausschluß im Beispielproblem Java kann mit jedem Objekt einen lock assoziieren (synchronized). Bei Aufruf einer Methode wird zusätzlicher Code zur Belegung (Aquire, vor Ausführung) und Freigabe (Release nach Ausführung und vor Return) des Locks durchlaufen. Nebenläufige Prozesse müssen ggfs bei Belegung zunächst auf Freigabe des Locks warten. Analyse von nebenläufigen Prozessen 21
22 Modelierung eines wechselseitigen Ausschlusses Wir definieren einen LOCK Prozeß, komponieren in mit Prozeß VAR und modifizieren das Alphabet: LOCK = (acquire->release->lock). LOCKVAR = (LOCK VAR). set VarAlpha = {value.{read[t],write[t], acquire, release}} Wir ergänzen TURNSTILE um die Belegung/Freigabe des Locks: TURNSTILE = (go -> RUN), RUN = (arrive-> INCREMENT end -> TURNSTILE), INCREMENT = (value.acquire -> value.read[x:t]->value.write[x+1] -> value.release->run )+VarAlpha. Analyse von nebenläufigen Prozessen 22
23 Verbessertes Ornamental Garden Modell - Fehlersuche Animation eines Beispiel Traces go east.arrive east.value.acquire east.value.read.0 east.value.write.1 east.value.release west.arrive west.value.acquire west.value.read.1 west.value.write.2 west.value.release end display.value.read.2 right Mittels TEST und LTSA erschöpfende Suche: Ist TEST erfüllt? Analyse von nebenläufigen Prozessen 23
24 Zusammenfassung Konzepte Prozeß Interferenz Wechselseitiger Ausschluß Modellierung und Analyse mit FSPs Komposition mit TEST Prozeß, somit Abbildung des Fehlers auf Deadlock Erschöpfende Suche Allgemeiner: Zustandsraumexploration Minimierung mittels Bisimulation Analyse von nebenläufigen Prozessen 24
Übersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (4) Eine untere Schranke für den Platzbedarf
Übersicht Komplexitätsresultate Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (4) Drei Komplexitätsresultate Eine genaue Schranke für den Platzbedarf
MehrModellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)
Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 02 Grundlagen Dr. Sebastian Voss fortiss GmbH Kompetenzfeldleiter Model-based Systeme Engineering Themenübersicht - Gesamtvorlesung
Mehr15. Elementare Graphalgorithmen
Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen
MehrAnalysevefahren am Beispiel Wechselseitiger Ausschluß II
Modellierung und Anlyse mittels FSs Anlysevefhren m Beispiel Wechselseitiger Ausschluß II Üersicht- Wiederholung Beispielprolem: Interferenz von rozessen und wechselseitiger Ausschluß (mutul exclusion).
MehrKapitel 6. Verklemmungen (Deadlocks)
Seite 1 Kapitel 6 Verklemmungen (Deadlocks) Prof. Dr. Rolf Hennicker 16.06.2016 6.1 Charakterisierung von Deadlocks Seite 2 Eine Verklemmung entsteht, wenn alle Prozesse in einem System blockiert (d.h.
MehrBetriebssysteme. Vorlesung im Herbstsemester 2010 Universität Mannheim. Kapitel 6: Speicherbasierte Prozessinteraktion
Betriebssysteme Vorlesung im Herbstsemester 2010 Universität Mannheim Kapitel 6: Speicherbasierte Prozessinteraktion Felix C. Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung
Mehr1. Einführung in Temporallogik CTL
1. Einführung in Temporallogik CTL Temporallogik dient dazu, Aussagen über Abläufe über die Zeit auszudrücken und zu beweisen. Zeit wird in den hier zunächst behandelten Logiken als diskret angenommen
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrKlausur: Lösungsvorschlag Software Engineering für spezielle Anwendungsgebiete: Entwurf und Implementierung paralleler Programme. Nachname...
Ludwig-Maximilians-Universität München SoSe 2013 Institut für Informatik 18.07.2013, 11:30 13:30 Uhr Prof. Dr. R. Hennicker, A. Klarl, M. Busch Klausur: Lösungsvorschlag Software Engineering für spezielle
MehrReduktion. 2.1 Abstrakte Reduktion
2 Reduktion In diesem Kapitel studieren wir abstrakte Eigenschaften von Regeln. In den ersten beiden Abschnitten betrachten wir nicht einmal die Regeln selbst, sondern nur abstrakte Reduktionssysteme,
MehrTesten nebenläufiger Objekte
Testen nebenläufiger Objekte Threads in Java Julian Lambertz Seminar Tests in Informatik und Statistik im SS 2004 Universität Ulm J.L., Juni 2004 1 Themenüberblick Einleitung Begriff der Nebenläufigkeit
MehrDynamisches Huffman-Verfahren
Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über
MehrBeispiel für überladene Methode
Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Abgeschlossenheit (Definition)
MehrVerteilte Systeme Teil 2
Distributed Computing HS 2012 Prof. Dr. Roger Wattenhofer, Dr. Thomas Locher C. Decker, B. Keller, S. Welten Prüfung Verteilte Systeme Teil 2 Freitag, 8. Februar 2013 9:00 12:00 Die Anzahl Punkte pro Teilaufgabe
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
MehrAuf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt.
432 433 434 435 Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 436 437 438 439 440 441 442 443 Die verkürzte
MehrBetriebssysteme. G: Parallele Prozesse. (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen)
Betriebssysteme G: Parallele Prozesse (Teil B: Klassische Problemstellungen, Mutual Exclusion, kritische Regionen) 1 Allgemeine Synchronisationsprobleme Wir verstehen ein BS als eine Menge von parallel
MehrZweizusammenhang und starker Zusammenhang
.. Zeizusammenhang und starker Zusammenhang Carsten Gutenger Vorlesung Algorithmen und Datenstrukturen WS /. Januar Zeizusammenhang Betrachte ein Netzerk (Graph) Z.B. Computernetzerk, Flug- oder Schienennetzerk
MehrProperty Based Testing
Property Based Testing Nicolai Mainiero sidion Testen ist schwer Testen ist schwer Warum? Alle Pfade durch den Code aufzuzählen ist aufwendig. Selbst vermeintlich einfache Systeme können komplex sein.
MehrObjektorientierte Programmierung
Objektorientierte Programmierung Ausnahmebehandlung und Nebenläufigkeit 9. Vorlesung am 15. Dezember 2010 Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A
MehrVoronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :
MehrPhilosophie des Intuitionismus und sein Einfluß auf die Informatik
Philosophie des Intuitionismus und sein Einfluß auf die Informatik Christoph Kreitz Was ist Intuitionismus? Unterschiede zur klassischen Mathematik Historische Entwicklung Bezüge zur Informatik Ähnlichkeit
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 20 (23.7.2014) All Pairs Shortest Paths, String Matching (Textsuche) Algorithmen und Komplexität Vorlesungsevaluation Sie sollten alle eine
MehrÜbungsblatt 2: Betriebssysteme, Prozesse
Ludwig-Maximilians-Universität München München, 13.05.2009 Institut für Informatik Priv.-Doz. Dr. Peer Kröger Thomas Bernecker Einführung in die Informatik: Systeme und Anwungen SS 2009 Übungsblatt 2:
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
MehrKlausur zur Vorlesung Grundlagen der Betriebssysteme
Prof. Dr. L. Wegner Dipl.-Math. K. Schweinsberg Klausur zur Vorlesung Grundlagen der Betriebssysteme 19.2.2004 Name:... Vorname:... Matrikelnr.:... Studiengang:... Hinweise: Bearbeitungszeit 2 Stunden.
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2016 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 1 Einführung 2 Grundlagen von Algorithmen
MehrTraversierung 1 / 16. P.F. Stadler & S. Will (Bioinf, Uni LE) ADS 2, V3 23. April / 16
P.F. Stadler & S. Will (Bioinf, Uni LE) ADS, V. April 0 / P.F. Stadler & S. Will (Bioinf, Uni LE) ADS, V. April 0 / Traversierung ADS: Algorithmen und Datenstrukturen Teil Prof. Peter F. Stadler & Sebastian
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /
MehrKapitel 2. Prozesse und Java-Threads
Seite 1 Kapitel 2 Prozesse und Java-Threads Prof. Dr. Rolf Hennicker 05.05.21 2.1 Prozessbegriff Seite 2 Prozess: Programm in Ausführung Prozesszustand (zu einem Zeitpunkt): Wird charakterisiert durch
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrUE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 3
UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 3 Algorithmen mit Gedächtnis Besonderheit Beispiele Typische Algorithmen Realisierungsvarianten Institut für Pervasive Computing Johannes
MehrLaborskript Verteilte Systeme
Laborskript Verteilte Systeme Nebenläufigkeit in Java Prof. Dr. Oliver Haase 1 Threads Java bietet zwei verschiedene Arten an, Threads zu erzeugen und zu starten: Entweder durch Erweitern der Klasse Thread,
MehrPraktische Informatik 3
Praktische Informatik 3 Christian Maeder WS 03/04 Vorlesung vom 12.1.2004: Ein/Ausgabe in funktionalen Sprachen Vorlesung vom 12.1.2004: Ein/Ausgabe in funktionalen Sprachen 3 Inhalt Wo ist das Problem?
MehrSommersemester Implementierung I: Struktur
Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
MehrVorlesung 2. Prozesse und Threads
Vorlesung 2 Prozesse und Threads 1 PROZESSE IN SOFTWARESYSTEMEN Komplexe Systeme bestehen aus mehreren Programmen, die gelichzeitig/nebenläufig ausgeführt werden Die Ausführung eines Programms wird oft
MehrÜbersicht. Nebenläufige Programmierung: Praxis und Semantik. Synchronisation (5) Bisher. Jetzt. Aktuelle Themen zu Informatik der Systeme: WS 2011/12
Stand der Folien: 15. November 2011 Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Synchronisation (5) 1 Übersicht über die Operationen Mutual-Exclusion
MehrVoronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x
Mehr(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl
Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112
MehrAlgorithmen implementieren. Implementieren von Algorithmen
Algorithmen implementieren Implementieren von Algorithmen Um Algorithmen ablaufen zu lassen, muss man sie als Programm darstellen (d.h. implementieren) Wie stellt man die algorithmischen Strukturelemente
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2011 Lösungsblatt 9 25. Juli 2011 Einführung in die Theoretische Informatik
MehrGERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT
User Requirements GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT Softwareentwicklung Praktikum, Übungsbeispiel 1 Gruppe 18 Andreas Hechenblaickner [0430217] Daniela Kejzar [0310129] Andreas Maller [0431289]
MehrFHZ. K13 Rekursion. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt
Inhalt 1. Einführung 1. Beispiel: Fakultät 2. Beispiel: Zahlenfolge 3. Beispiel: Formale Sprache 4. Unterschied Iteration/Rekursion 2. Rekursive Methoden 1. Beispiel: Fakultät 2. Beispiel: "Türme
Mehr14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
MehrAbschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Abgeschlossenheit (Definition) Gegeben sei eine Menge M und ein n-ärer
MehrKapitel 2. Prozesse und Java-Threads
Seite 1 Kapitel 2 Prozesse und Java-Threads Prof. Dr. Rolf Hennicker 18.04.2013 2.1 Prozessbegriff Seite 2 Prozess: Programm in Ausführung Prozesszustand (zu einem Zeitpunkt): Wird charakterisiert durch
MehrModel Checking mit Büchi Automaten
Ingo Weigelt Softwaretechnik 3 16.05.2007 Übersicht 1 Automaten über unendlichen Wörtern ω-automaten Büchi-Automaten 2 Model Checking mit Büchi Automaten Konstruktion von A Konstruktion von A S Leerheitstest
MehrModellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II)
Modellierung verteilter Systeme (Grundlagen der Programm- und Systementwicklung II) 02 Grundlagen Dr. Sebastian Voss fortiss GmbH Kompetenzfeldleiter Model-based Systeme Engineering Themenübersicht - Gesamtvorlesung
Mehr4. Alternative Temporallogiken
4. Alternative Temporallogiken Benutzung unterschiedlicher Temporallogiken entsprechend den verschiedenen Zeitbegriffen LTL: Linear Time Logic Ähnlich der CTL, aber jetzt einem linearen Zeitbegriff entspechend
MehrDie Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit ausgeführt werden.
7 Parallelität und Nebenläufigkeit Mehrere Prozessen oder Threads Parallelität Die Anweisungen zweier Prozesse werden parallel bearbeitet, wenn die Anweisungen unabhängig voneinander zur gleichen Zeit
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 13 (6.6.2018) Graphenalgorithmen II Yannic Maus Algorithmen und Komplexität Repräsentation von Graphen Zwei klassische Arten, einen Graphen
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen
Mehr1. Datenstrukturen zur Lösung von Mengenverwaltungsproblemen
Prof. Dr. Norbert Blum M.Sc. Adrian Schmitz Informatik V BA-INF 032 - Algorithmen und Berechnungskomplexität I WS 2014/15 Mögliche Klausuraufgaben Stand 3. Februar 2015 Bitte beachten Sie, dass die tatsächlichen
Mehr6. Tutorium zu Softwaretechnik I
6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,
MehrEIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217
EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?
MehrBäume und der Sequence ADT
Bäume und der Sequence ADT Motivation: Der Sequence ADT Bei der Vorstellung verschiedener Implementierungen für Stacks, Queues und Deques wurde vor allem auf die Unterschiede zwischen Arrays fester Größe,
MehrGraphdurchmusterung, Breiten- und Tiefensuche
Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,
MehrWintersemester 2004/ Februar 2005
Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim
MehrMutual Exclusion. Annika Külzer Florian Störkle Dennis Herzner
Mutual Exclusion Annika Külzer Florian Störkle Dennis Herzner Gliederung 1 Mutual Exclusion allgemein 2 Lock-Algorithmen 2.1 LockOne 2.2 LockTwo + Beweis 2.3 Peterson Lock 2.4 Lamport's Bakery Lock-Algorithmus
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
MehrInformatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!
Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
MehrBreitensuche BFS (Breadth First Search)
Breitensuche BFS (Breadth First Search) Algorithmus BREITENSUCHE EINGABE: G = (V, E) als Adjazenzliste, Startknoten s V 1 Für alle v V 1 If (v = s) then d[v] 0 else d[v] ; 2 pred[v] nil; 2 Q new Queue;
MehrLeser-Schreiber-Realisierung mit Semaphoren
Leser-Schreiber-Realisierung mit Semaphoren Reader: down(semwriter); down(semcounter); rcounter++; up(semwriter); read(); down(semcounter); rcounter--; Writer: Problem: down(semwriter); Busy Waiting siehe
MehrEinführung in die Programmierung für NF. Rückgabewerte, EBNF, Fallunterscheidung, Schleifen
Einführung in die Programmierung für NF Rückgabewerte, EBNF, Fallunterscheidung, Schleifen FUNKTIONEN UND PROZEDUREN 3 Rückgabewerte, EBNF, Fallunterscheidung, Schleifen 2 Funk@on und Prozedur Methoden
MehrElementare Verbandstheorie. Elementare Verbandstheorie Sommersemester / 1
Elementare Verbandstheorie Elementare Verbandstheorie Sommersemester 2009 1 / 1 Halbordnungen Definition Eine binäre Relation auf einer Menge M heisst Halbordnung, wenn sie reflexiv, transitiv und antisymmetrisch
MehrKap. 6.5: Minimale Spannbäume ff
Kap. 6.: Minimale Spannbäume ff Professor Dr. Karsten Klein Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 20. VO 2. TEIL DAP2 SS 2009 2. Juli 2009 SS08 1 Überblick 6.:
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 19. 25. Februar 2003 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()
MehrKapitel 5. Monitore und Synchronisationsbedingungen
Seite Kapitel 5 Monitore und Synchronisationsbedingungen Prof. Dr. Rolf Hennicker 5.6.24 5. Synchronisationsbedingungen Seite 2 Bisherige Verwendung von Monitoren: Verkapselung von Daten, Zugriffoperationen
MehrWann sind Codes eindeutig entschlüsselbar?
Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C
MehrErreichbarkeitsanalyse
Erreichbarkeitsanalyse 1 Definition Unter Erreichbarkeitsanalyse versteht man Berechnung aller erreichbaren Zustände Resultat kann explizit oder symbolisch repräsentiert werden wird für weitere Algorithmen
MehrBinary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
MehrKlausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte
Universität Düsseldorf Mathematisch-naturwissenschaftliche Fakultät Institut für Informatik Prof. Dr. Michael Schöttner Florian Klein Kevin Beineke Janine Haas Klausur zur Vorlesung Informatik 1 im Wintersemester
MehrResolutionsalgorithmus
112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:
MehrParallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:
Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrKap. 6.6: Kürzeste Wege
Kap. 6.6: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1./. VO DAP SS 009./9. Juli 009 1 Nachtest für Ausnahmefälle Di 1. Juli 009, 16:00 Uhr,
MehrEinführung in die Informatik I (autip)
Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis
MehrKapitel 2. Prozesse und Java-Threads
Seite 1 Kapitel 2 Prozesse und Java-Threads Prof. Dr. Rolf Hennicker 27.04.2017 2.1 Prozessbegriff Seite 2 Prozess: Programm in Ausführung Prozesszustand (zu einem Zeitpunkt): Wird charakterisiert durch
Mehrreach 4 explizit = jeder Zustand/Übergang wird einzeln repräsentiert symbolisch = Mengen-Repräsentation von Zuständen/Übergängen durch Formeln
Erreichbarkeitsanalyse reach 1 Symbolisch vs Explizit reach 2 Definition Unter Erreichbarkeitsanalyse versteht man explizit = jeder Zustand/Übergang wird einzeln repräsentiert symbolisch = Mengen-Repräsentation
Mehr1. Motivation. Problemstellung: Dateninkonsistenzen (data races) aufgrund von konkurrierenden Zugriffen auf gemeinsame Daten sollen verhindert werden.
1. Motivation Problemstellung: Dateninkonsistenzen (data races) aufgrund von konkurrierenden Zugriffen auf gemeinsame Daten sollen verhindert werden. 25.09.09 Ferienakademie 2009 Kurs 1: Data Coloring
MehrKombinatorische Optimierung
Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 16 Programm: Einführung
MehrAlgorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
MehrInformatik 1. Sommersemester Helmut Seidl. Institut für Informatik TU München
Informatik 1 Sommersemester 2011 Helmut Seidl Institut für Informatik TU München 1 0 Allgemeines Inhalt dieser Vorlesung: Einführung in Grundkonzepte der Informatik; Einführung in Denkweisen der Informatik;
MehrDank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung
Dank Vorlesung Theoretische Informatik II Bernhard Beckert Institut für Informatik Diese Vorlesungsmaterialien basieren zum Teil auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität
MehrDiskrete Strukturen Kapitel 2: Grundlagen (Relationen)
WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Relationen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16
MehrMögliche Implementierung von intern():
Mögliche Implementierung von intern(): public class String { private static int n = 1024; private static List[] hashset = new List[n]; public String intern() { int i = (Math.abs(hashCode()%n);
MehrKap. 6.6: Kürzeste Wege
0.0.00 Nachtest für Ausnahmefälle Kap..: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund./. VO DAP SS 00./. Juli 00 Di. Juli 00, :00 Uhr, OH, R.
MehrLehrstuhl für Datenverarbeitung. Technische Universität München. Leistungskurs C++ Multithreading
Leistungskurs C++ Multithreading Zeitplan 16.10. Vorlesung 23.10. Vorlesung, Gruppeneinteilung 30.10. Vorlesung, HA1 06.11. Vorlesung, HA2 13.11. Vorlesung entfällt wegen SVV 20.11. Präsentation Vorprojekt
Mehr