Joseph Cordina 1/11 The Use of Model-Checking for the Verification of Concurrent Algorithms Joseph Cordina Department of C.S.&A.I.

Slides:



Advertisements
Similar presentations
Analysis of Computer Algorithms
Advertisements

Bounded Model Checking of Concurrent Data Types on Relaxed Memory Models: A Case Study Sebastian Burckhardt Rajeev Alur Milo M. K. Martin Department of.
Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee.
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Give qualifications of instructors: DAP
Ch. 7 Process Synchronization (1/2) I Background F Producer - Consumer process :  Compiler, Assembler, Loader, · · · · · · F Bounded buffer.
Evolution and History of Programming Languages Software/Hardware/System.
Håkan Sundell, Chalmers University of Technology 1 Space Efficient Wait-free Buffer Sharing in Multiprocessor Real-time Systems Based.
1/1/ / faculty of Electrical Engineering eindhoven university of technology Introduction Part 3: Input/output and co-processors dr.ir. A.C. Verschueren.
Creating Computer Programs lesson 27. This lesson includes the following sections: What is a Computer Program? How Programs Solve Problems Two Approaches:
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.
ISBN Chapter 3 Describing Syntax and Semantics.
1 Formal Methods in SE Qaisar Javaid Assistant Professor Lecture 05.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
What is an Algorithm? (And how do we analyze one?)
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
CSE 830: Design and Theory of Algorithms
Models of Computation for Embedded System Design Alvise Bonivento.
Bellevue University CIS 205: Introduction to Programming Using C++ Lecture 1: Getting Started by George Lamperti & BU Faculty.
Describing Syntax and Semantics
Real-Time System Requirements & Design Specs Shaw - Chapters 3 & 4 Homework #2: 3.3.1, 3.4.1, Add Error states to Fig 4.1 Lecture 4/17.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Cmpt-225 Simulation. Application: Simulation Simulation  A technique for modeling the behavior of both natural and human-made systems  Goal Generate.
Advances in Language Design
Verification technique on SA applications using Incremental Model Checking 컴퓨터학과 신영주.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
PROGRAMMING LANGUAGES The Study of Programming Languages.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles, 6/E William Stallings 1.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton.
Speaking Bluntly about SharpHDL: Some Old Stuff and Some Other Proposed Future Extensions Gordon J. Pace & Christine Vella Synchron’05 Malta, November.
Fast Multi-Threading on Shared Memory Multi-Processors Joseph Cordina B.Sc. Computer Science and Physics Year IV.
Håkan Sundell, Chalmers University of Technology 1 Using Timing Information on Wait-Free Algorithms in Real-Time Systems (2 papers)
EEL Software development for real-time engineering systems.
Institute e-Austria in Timisoara 1 Author: prep. eng. Calin Jebelean Verification of Communication Protocols using SDL ( )
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Selection Control Structures. Simple Program Design, Fourth Edition Chapter 4 2 Objectives In this chapter you will be able to: Elaborate on the uses.
Analysis of algorithms Analysis of algorithms is the branch of computer science that studies the performance of algorithms, especially their run time.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Introduction to Computer Application (IC) MH Room 517 Time : 7:00-9:30pm.
Algorithms & Flowchart
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Chapter 1 Introduction Study Goals: Master: the phases of a compiler Understand: what is a compiler Know: interpreter,compiler structure.
Ch. 13 Ch. 131 jcmt CSE 3302 Programming Languages CSE3302 Programming Languages (notes?) Dr. Carter Tiernan.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Concurrency in Shared Memory Systems Synchronization and Mutual Exclusion.
Basic Elements of Processor ALU Registers Internal data pahs External data paths Control Unit.
Theory-Aided Model Checking of Concurrent Transition Systems Guy Katz, Clark Barrett, David Harel New York University Weizmann Institute of Science.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Software Engineering Algorithms, Compilers, & Lifecycle.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
Algorithms and Problem Solving
Courtsey & Copyright: DESIGN AND ANALYSIS OF ALGORITHMS Courtsey & Copyright:
Yogesh Mahajan, Sharad Malik Princeton University
Algorithms and Problem Solving
Presentation transcript:

Joseph Cordina 1/11 The Use of Model-Checking for the Verification of Concurrent Algorithms Joseph Cordina Department of C.S.&A.I.

Joseph Cordina 2/11 Problems Designing Concurrent Algorithms – Complex algorithms that have multiple concurrent counter-parts – Usually designed using complex atomic instructions making it difficult to reason with – Increasing number of concurrent tasks make algorithm difficult to predict – Guarantees are necessary if used in critical scenarios Typical Verification – Dry-run on paper – Tested extensively on hardware – No guarantees of any sort Simple algorithms like semaphore implementations take long hours to verify, our aim is to verify wait-free algorithms.

Joseph Cordina 3/11 Model-Checking Automated technique allowing verification of properties according to the given model Several tools are available that try to minimise the state space – Main problem with verification is state-explosion SMV is a project that provides tools free – Accepts a model written in SMV language – Verifies properties in temporal logic – Outputs counter-examples of negated properties

Joseph Cordina 4/11 Verification of Algorithms Verification Model in SMV language – Model CPU characteristics (PC, registers,etc) – Moving PC from one instruction to the next in each time step – Current PC determines next state of registers and memory locations – Signal to start algorithm is un-deterministic Multiple instances of algorithm are verified for all legal permutations of execution

Joseph Cordina 5/11 Execution Models We have constructed two models – Uni-processor model with un-deterministic scheduler Multiple instances of an algorithm are executed as separate tasks Each task is modelled through the use of a task descriptor – Multi-processor model Multiple CPU descriptions each running some part of the algorithms Start of execution is un-deterministic

Joseph Cordina 6/11 SMV language Designer of algorithm – Supplies each instruction in SMV – Encodes the properties – SMV provides verification Each algorithm and property needs to be translated to SMV language – A cumbersome task – Requires designer to learn SMV

Joseph Cordina 7/11 Pre-Processing We built a parser in FLEX – Takes a description of the algorithm – Translates it to SMV language Easier to specify algorithm No need to learn SMV Description keywords – CPUs, REGISTERS, MEMORY, STATEVARS – LABELS, CODE, ASSERTIONS, TRIGGER, START – PERCPUASSUMPTIONS, EXCLUSIVEINSTRUCTIONS – PROVE Properties are specified in temporal logic with optimisations in terms of expressiveness

Joseph Cordina 8/11 Results Automation for the generation of the SMV model from an input concurrent algorithm Verification of concurrent algorithms – Framework allows very complex algorithms as long as no complex communication primitives are assumed Guarantees given for a limited number of concurrent resources – Limited by SMV – Assumptions can be given to limit the state space

Joseph Cordina 9/11 Future Work Coalesce the uni-processor model with the multi-processor model Make use of alternate model-checkers allowing CSP communication Implement more complex instructions allowing verification of wait-free algorithms Parse SMV output allowing visual representation dependant on input description

Joseph Cordina 10/11 Conclusion This work is a proof-of-concept showing the possibility of verification of concurrent algorithms using model-checking Our solution – Model using SMV language – Pre-processor Constructs model Creates algorithm instructions in SMV Generates properties and assumptions Algorithm designers can now have guarantees within a reasonable amount of time

Joseph Cordina 11/11 Thank You Questions?