GithubHelp home page GithubHelp logo

dstulle / diplomarbeit Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 20.3 MB

Konzeption und Implementierung eines Übersetzungsschemas zur automatischen Verifikation von ReActor-Spezifikationen

Home Page: http://danielsturm.de/diplomarbeit-daniel.sturm.pdf

TeX 6.61% TLA 53.08% Makefile 1.64% Scheme 38.48% ANTLR 0.19%

diplomarbeit's Introduction

Konzeption und Implementierung eines Übersetzungsschemas zur automatischen Verifikation von ReActor-Spezifikationen

Gemäß dem Mooreschen Gesetz verdoppelt sich alle 1-2 Jahre die Leistungsfähigkeit der Prozessoren. Lange geschah dies in Form einer Erhöhung der CPU-Taktfrequenz. In letzter Zeit geht der Trend in eine andere Richtung. Die Leistungsfähigkeit erhöht sich durch die Parallelisierung von Prozessen.

Diese Trendwende hat zur Folge, dass sich die Art und Weise wie Programme entwickelt werden darauf anpassen muss. Programme können nicht mehr nur aus strikt nacheinander auszuführenden Anweisungen bestehen. Statt dessen müssen Teile des Programmcodes parallel zueinander ausgeführt werden können.

Bei einer parallelen Ausführung von Programmen ist die Reihenfolge der ausgeführten Anweisungen nicht immer vorhersehbar. Dadurch entstehen neue Probleme und Herausforderungen. Unter anderem muss der Zugriff auf gemeinsame Ressourcen wie beispielsweise Bereiche im Arbeitsspeicher koordiniert werden, damit sich Prozesse nicht gegenseitig blockieren (Deadlock) oder durch ungeschicktes Timing Speicherinhalte verfälscht werden (Race Condition).

Probleme, die durch die gemeinsame Nutzung von Speicherbereichen oder der zeitlichen Ausführung von Operationen entstehen, können entweder durch schwer überschaubare Synchronisationsmechanismen vermieden werden, oder durch die Einhaltung einfacher Grundprinzipien umgangen werden.

Ein Rechenmodell zur Modellierung paralleler Prozesse ist das Aktormodell. Das Aktormodell nutzt zur Prozesskommunikation keinen gemeinsamen Speicherbereich (shared memory) sondern Nachrichten (message passing). Ein Aktor kann Nachrichten verarbeiten und senden sowie neue Aktoren erzeugen. Eine detailiertere Einführung in die Grundprinzipien des Aktormodells befindet sich in Abschnitt 2.1.

Um ein Aktor-System bereits in der Entwurfsphase zu prüfen, ist es notwendig ein Aktor-System auf abstraktem Niveau formal zu spezifizieren. Eine Möglichkeit Aktor-Systeme deklarativ zu spezifizieren ist ReActor. Weitere Details zu ReActor in Kapitel 4.

Komplexe Systeme haben meist eine hohe Zahl an möglichen Zuständen und Abläufen. Dabei reicht es meist nicht aus einzelne Situationen zu testen oder einige Abläufe zu simulieren, um die Funktionsfähigkeit fest zu stellen. Besonders bei sicherheitskritischen Systemen ist es wichtig das System vollständig zu analysieren. Ein formal spezifiziertes System kann durch ein automatisches Verfahren, genannt Model-Checking, verifiziert werden. Mehr zum Thema Modellprüfer (engl. Model Checker) wird im Abschnitt 2.2 behandelt.

Ein Aktor-System kann mithilfe eines Modellprüfers verifiziert werden. Dazu muss ein allgemeines Ausführungsmodell für das zu prüfende Aktorsystem erstellt werden.

Um die Modellierung des Aktorsystems zu erleichtern, soll eine reine Spezifikation von Aktoren in ReActor in ein vollständiges Ausführungsmodell in TLA+ übertragen werden (engl. code transformation). In diesem vollständigen Ausführungsmodell wird die Spezifikation der Aktoren in die bereits vorhandene Spezifikation des allgemeinen Verhaltens der Aktoren eingebettet.

http://danielsturm.de/diplomarbeit-daniel.sturm.pdf

diplomarbeit's People

Contributors

dstulle avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.