1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0;

Ähnliche Dokumente
3.2 Spezifikationen mit Zeit

Verwenden von Ms Outlook 2003

Grundzüge der Wirtschaftsinformatik WS 2002/03. Wiederholung Java. Programmierzyklus. Heiko Rossnagel Problem

Beispielklausur B MPGI 3

LATENCY BUNDLE BEDIENUNGSANLEITUNG

Verkabelung und Applikationsbeschreibung. Audio-System Schaltschrank

Routing Algorithmen. Begriffe, Definitionen

Station 1 Das Galtonbrett, Realmodelle

Domänenmodell: Fadenkommunikation und -synchronisation

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Schleifen in C/C++/Java

Theory Austrian German (Austria) Lies, bitte, bevor du mit der Aufgabe beginnst die allgemeinen Anweisungen im separaten Briefumschlag.

Parallele Prozesse. Prozeß wartet

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Übungen zu Rechnerkommunikation Wintersemester 2010/2011 Übung 8

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

Dynamische Geometrie

Greenfoot: Verzweigungen

3.1 Synchron kommunizierende Automaten. 3. Modelchecking mit Timed Automata und Uppaal

Application Note Nr. 102 RS485 Kommunikation

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Algorithmen & Datenstrukturen 1. Klausur

Aufgaben zur Attiny-Platine

Wie beweise ich etwas? 9. Juli 2012

6 Speicherorganisation

Ein einfaches Modell zur Fehlerfortpflanzung

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt : Grundlagen des Cyclic redundancy code (CRC)

BUBBLE SORT. Können wir die gefundenen Algorithmen auch auf Listen mit mehr als drei Elementen ausdehnen?

Musterlösung der Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

VERSION 5.1/5.2 KURZANLEITUNG FÜR MACINTOSH

Tutorial zum Umgang mit Scratch

Grundlagen verteilter Systeme

Übung 5: Transport. Rechnernetze. Wintersemester 2014/ Allgemeine TCP Verständnisfragen

Arbeiten im Team. Präsentationen per verschicken. Übung 1: Präsentation an eine anhängen

Übung Betriebssysteme 11

Aufgaben zum Thema Verklemmungen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

Sammelrechnungen mit IOS2000/DIALOG

agentilo Geräte Editor Version Prozessinterface UDP Befehle

CS2101 Nebenläufige und Verteilte Programme Bachelor of Science (Informatik)

APP AutOut Microtek Anleitung zur Installation und Verwendung

Kurzanleitung. Toolbox. T_xls_Import

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

Online Datenaustausch mit AutoCAD Architecture und AutoCAD WS

Serielle Schnittstellen

Klausur Grundlagen der Informatik Hochschule Ravensburg-Weingarten

Bedienungsanleitung MDE

Protokoll-Spezifikationen

Wiederholung zu Flüssen

Docusnap X Discovery Service. Installation und Konfiguration

Web Sockets mit HTML5. Quelle:

Hausübung 2. Konzepte und Methoden der Systemsoftware. Aufgabe 1: Einfache Schedulingstrategien. SoSe bis

Musterlösung zur Hauptklausur Theoretische Grundlagen der Informatik Wintersemester 2013/14

Bedienungsanleitung DD 55 IS. Displaydecoder mit InterBus-S

DROOMS Q&A / SPEZIALISTENSICHT HANDBUCH.

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Dokumentation zur Anlage eines JDBC Senders

Anleitung zum Erstellen eines Sicherheitsszenarios mit der homeputer CL Studio Software

Man kann bei der Deklaration einen Wert der Variablen angeben oder später den Wert zuweisen. Beide Befehlsfolgen leisten dasselbe:

Schleifen in Javascript

Abschlusseigenschaften. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Abschlusseigenschaften

Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Diana Lange. GENERATIVE GESTALTUNG Komplexe Datentypen: PShape

Microsoft Visio 2007-Programmierung

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3

Clients in einer Windows Domäne für WSUS konfigurieren

Algorithmen und Datenstrukturen Wintersemester 2004/ November T(n) = T(n a) + T(a) + n

SCHULSPEZIFISCHEN ROLLENRECHTE

Formale Methoden: Ein Überblick

Excel Pivot-Tabellen 2010 effektiv

Motivation. Motivation

Deklarationen in C. Prof. Dr. Margarita Esponda

TRANSRADIO SenderSysteme Berlin

Technische Informatik II

C/C++ Debugging mit CDT unter Eclipse

Handbuch zum VivaWeb-Serienbrief-Programm

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Inhaltsverzeichnis. 4.1 Systemmodell und notwendige Bedingungen. 4.2 Gegenmaßnahmen

Praktikumstermin B-07: make & Makefiles

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Theoretische Aspekte

Prüfung Computation, Programming

Abwesenheitsnotiz im Exchangeserver 2010

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

teamware MWS Mailer Voraussetzungen Installation:

Dokumentation Faxsolution

1. Pegasus Mail starten Versenden von Lesen eingegangener Post an Gruppen: Verteilungslisten...

1 Dokument hochladen Dokument verschieben Neuen Ordner einfügen Ordner verschieben Dokumente und Ordner löschen...

Algorithmen, Datenstrukturen und Programmieren II SS 2001

Anleitung zum Usenet Programm GRABIT Beta 6

Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.

Klausur zu den Teilgebieten Software-Management und Software-Qualitätsmanagement

Benutzung von Auslösern und Aktionen

... Client 1. Request. Reply. Client 2. Server. Client n. Günther Bengel Grundkurs Verteilte Systeme 3. Auflage Vieweg Verlag 2004 ISBN

-Versand an Galileo Kundenstamm. Galileo / Outlook

Microsoft ISA Server 2004

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Transkript:

1) Gegeben Sei der auf der rechten Seite beschriebene Prozess mit folgenden globalen Deklarationen. const int N := 4; chan c[n]; int wert := 0; Weiterhin hat der Prozess folgende lokale Deklaration. void add(int i){ int tmp := 1; int count := 0; while (count < i){ tmp *= 10; count++; } wert := wert + tmp; } Ergänzen Sie den Prozess so um einen oder mehrere Prozesse, so dass in der Variablen wert am Ende einer Simulation (Knopf: Auto) immer der Wert 4242 steht. Sie dürfen dabei die Variable wert selbst nicht verändern und es müssen alle Kommunikationskanäle genutzt werden. 2) a) Bearbeiten Sie Aufgabe 10 vom Aufgabenblatt 5 (paralleler Sortierer) mit Timed Automata. Dabei signalisieren sich die Prozesse nur mit einem Signal, wer die beiden zu den Prozessen gehörigen Daten sortieren soll. Das zu sortierende Array ist global. Die Zusammensetzung der Spezifikation könnte zusammen mit b) wie folgt aussehen. S0=Sort(0); S1=Sort(1); S2=Sort(2); S3=Sort(3); S4=Sort(4); /* für N=5 Prozesse*/ // List one or more processes to be composed into a system. system Initialisierer,S0,S1,S2,S3,S4,Pruefer; Hinweis: Für die Simulation und die spätere Verifikation ist es sinnvoll, alle Zustände als urgent zu markieren. b) Verifizieren Sie die Korrektheit Ihrer Spezifikation aus a); ergänzen Sie dazu den Pruefer-Prozess. Seite 1 von 6

3) Gegeben sei die obige Timed-Automata-Spezifikation mit clock c. a) Erklären Sie genau die Spezifikation des Zustands s2 und der ausgehenden Kanten. b) Hat die Spezifikation eine Deadlock-Möglichkeit? Wenn ja, welche Möglichkeiten in welchen Zuständen gibt es? c) Welche Möglichkeiten mit welchen Werten von c gibt es, vom Zustand s1 in den Zustand s7 zu kommen? 4) s3 x:=0 s1 x<20 x>2 x>6 Gegeben sei der obige Timed Automata P mit der clock x. c) Erklären Sie das Verhalten von P im Zustand s1. d) Hat P einen Deadlock? Begründen Sie Ihre Antwort. e) Welchen Wert kann x minimal und maximal annehmen, wenn s3 erreicht wird? f) Spezifizieren Sie die Anforderung, dass der Wert von x immer kleiner als 30 ist, in Timed CTL. g) Spezifizieren Sie die Anforderung, dass es die Möglichkeit gibt, dass nie s2 durchlaufen wird, in Timed CTL. x<8 s2 5) a) Entwickeln Sie eine Spezifikation aus drei Automaten, die sich über Kanäle synchronisieren und die ohne Zeitbedingungen einen Deadlock, aber mit bestimmten Zeitbedingungen keinen Deadlock hat. b) Entwickeln Sie eine Spezifikation aus drei Automaten, die sich über Kanäle synchronisieren und die ohne Zeitbedingungen keinen Deadlock, aber mit bestimmten Zeitbedingungen einen Deadlock hat. 6) Ein Erzeuger-Prozess erzeugt beliebig häufig Kommunikationssignale c. Ein alter Empfänger-Prozess ist nur maximal alle sechs Zeiteinheiten bereit, ein solches Signal Seite 2 von 6

anzunehmen. Schreiben Sie einen Filterprozess, der Signale des Erzeugers abfängt und diese an den Empfänger weiterleitet, dabei sollen zwischen zwei Übertragungen zum Empfänger mindestens sechs Zeiteinheiten liegen. Erhält der Filter innerhalb der sechs Zeiteinheiten ein Signal des Erzeugers, so merkt er sich das, damit nach genau sechs Zeiteinheiten ein Signal an den Empfänger geschickt wird. Erhält der Filter mehr als ein Signal innerhalb der sechs Zeiteinheiten, so werden diese weiteren Signale ignoriert. Der Filter realisiert damit einen Puffer der Größe Eins, das Verhalten wird auch im folgenden Bild skizziert. In einer Spezifikation kann man das Signal zwischen Erzeuger und Filter mit einer synchronen Kommunikation c und die Kommunikation zwischen Empfänger und Filter mit einer synchronen Kommunikation cc modellieren. Damit sehen die Erzeuger und Empfängerprozesse wie folgt aus. Erzeuger Empfaenger Modellieren Sie den Filter, ergänzen Sie eine globale Uhr und simulieren Sie Ihr System. 7) 3. Stock 2. Stock 1. Stock 0. Stock knopf[3] tuer[3] knopf[2] tuer[2] knopf[1] tuer[1] knopf[0] tuer[0] Knopfverwaltung Steuerung Fahrstuhlsteuerung rauf runter bereit Fahrstuhl Zu entwickeln ist die Spezifikation für einen Fahrstuhl für vier Stockwerke, der aus den in der Abbildung genannten Komponenten besteht. Entwickeln Sie die Spezifikation für Stock, Knopfverwaltung, Steuerung und Fahrstuhl schrittweise und versuchen Sie Seite 3 von 6

festzustellen, wie lange es maximal vom Drücken des Fahrstuhlknopfes bis zum Öffnen der Tür dauert. In der Zeichnung sind keine Möglichkeiten zum Datenaustausch mit globalen Variablen beschrieben, mit denen die Steuerung z. B. mitbekommen kann, welche Knöpfe gedrückt wurden. In jedem Stockwerk gibt es einen Knopf, der zur Anforderung des Fahrstuhls (knopf[i]) gedrückt werden kann. Der Knopf bleibt solange gedrückt, bis der Fahrstuhl in dem Stockwerk ist und die Tür geöffnet (tuer[i]) wird. Das Einsteigen der Leute soll minimal 4 und maximal 10 Zeiteinheiten dauern. Die Knopfverwaltung registriert, in welchem Stockwerk die Knöpfe gedrückt wurden. Zur Verwaltung kann z.b. eine Schlange (Queue) spezifiziert werden, in die die zuletzt gedrückten Knöpfe eingetragen werden (welche Vor- und Nachteile sehen Sie hier?). Das Drücken der Knöpfe soll ohne Verzögerung erkannt werden. Die Steuerung arbeitet die gedrückten Knöpfe ab. Wenn ein Knopf gedrückt wurde, wird die Information über den am frühesten gedrückten Knopf genommen und in Steuerbefehle an den Fahrstuhl, genauer den Fahrstuhlmotor, umgerechnet. Der Fahrstuhl fährt mit dem Befehl rauf ein Stockwerk nach oben und mit runter ein Stockwerk nach unten. Die Fahrt zwischen zwei benachbarten Stockwerken dauert exakt vier Zeiteinheiten. Wenn der Fahrstuhl ein neues Stockwerk erreicht hat, sendet er ein bereit-signal an die Steuerung. Wie verhält sich Ihre Spezifikation, wenn der Fahrstuhl sich im i-ten Stockwerk befindet und gerade die Türen wieder geschlossen hat und sofort wieder der Knopf des i-ten Stockwerks gedrückt wird? 8) Erstellen Sie eine Timed-Automata-Spezifikation für folgende informelle Spezifikation, wählen Sie sprechende Namen für Zustände und Variablen, dabei soll innerhalb Ihrer Spezifikation ein möglicher Messwert geraten werden. Ein Messgerät bekommt eine Probe übergeben und berechnet einen Messwert, der zwischen 10 und 20 (jeweils einschließlich) liegt. Die Berechnung dauert maximal 7 und minimal 5 Zeiteinheiten. Falls der Messwert größer 17 ist, wird die Messung einmal wiederholt. Bei einem Messwert unter 14 wird die Probe zur Archivierung gegeben, die zwischen 20 und 40 Zeiteinheiten dauert. Falls die Archivierung länger als 35 Zeiteinheiten dauert, kann die Probe auf einem Lagerplatz zur weiteren Bearbeitung außerhalb des Messarbeitsplatzes abgelegt werden. Für größere Messwerte wird die Probe im Messgerät bestrahlt, wobei es mindestens 5 Zeiteinheiten dauert, bis die Bestrahlung begonnen wird. Nach der Bestrahlung wird die Probe, wie vorher beschrieben, zur Lagerung weitergegeben. Seite 4 von 6

9) s1 x<3 i:=3 i:=1 x<12 s2 x>7 i:=i+2, x:=0 s3 x<15 j:=1, x:=0 s4 x<7 x<5 j:=i, i:=i-2 x>4 j:=j+2 Gegeben sei obige Timed Automata-Spezifikation. Formulieren Sie folgende Anforderungen in Timed CTL, überlegen Sie, ob die Anforderungen erfüllt sind und überprüfen Sie Ihre Annahme in UPPAAL. a) der Wert von x ist immer kleiner 20 b) wenn das System nicht im Zustand s1 ist, dann ist i immer ungerade c) wenn das System nicht im Zustand s1, s2 oder s3 ist, dann ist j immer ungerade d) der Wert von j ist immer kleiner als 7 e) es gibt einen Pfad, auf dem j immer kleiner als 7 ist f) auf allen Pfaden ist j einmal kleiner als 7 g) auf allen Pfaden ist i einmal kleiner als j h) es gibt einen Pfad, auf dem j immer kleiner-gleich i ist i) es gibt einen Pfad, auf dem j einmal größer als i ist j) immer wenn das System im Zustand s5 ist, gilt später j==i k) das System ist deadlockfrei 10) Lösen Sie Aufgabe 12 Vom Aufgabenblatt 5 mit Timed-Automata. Dabei sind folgende Änderungen zu beachten: Sie sollen synchrone Kommunikation nutzen. Statt Kommunikationskanälen gibt es nur direkte Kommunikationen, d. h. das Bild mit den gemeinsamen Verbindungen ist eher irreführend, es muss z. B. N requestund free-kanäle geben. Dabei bleibt die Zuteilung eines Kommunikationskanals tos[i] sinnvoll. Uppaal erlaubt eine einfache Spezifikation des Verhaltens des Servers, auf verschiedenen Kanälen zu warten. Rekapitulieren Sie, wie der Scheduler dem Sender mitteilen kann, welchen Kanal er zum Server nutzen soll. Weiterhin sollen folgende Zeitbedingungen mit spezifiziert werden: Der Scheduler benötigt mindestens zwei Zweiteinheiten, um für einen erneuten Empfang einer Kommunikation bereit zu sein. (In der Zwischenzeit können Antworten gesendet werden). Die eigentliche Kommunikation zwischen Sender und Server benötigt zwischen drei und acht Zeiteinheiten. Beweisen Sie die Deadlockfreiheit Ihres Systems. s5 x<9 s6 int i:=0; int j:=0; clock x Seite 5 von 6

Versuchen Sie, die weiteren in der ursprünglichen Aufgabe geforderten Anforderungen zu beweisen, überlegen Sie vorher, ob und wie, bzw. unter welchen weiteren Annahmen, eine Verifikation überhaupt möglich ist (dies ist bei weitem nicht immer der Fall, da die Logik nicht sehr mächtig ist!). Hinweis: Entwickeln Sie die Spezifikation zunächst ohne Zeit und die Abbruchmöglichkeit des Servers, ergänzen Sie dann die Abbruchmöglichkeit für den Server (die Vermeidung von Deadlocks ist nicht trivial) und ergänzen Sie dann die Zeitbedingungen. Seite 6 von 6