External Program Model Checking Stefan Edelkamp, Shahid Jabar, Dino Midzic, Daniel Rikowski and Damian Sulewski Computer Science Department University.

Slides:



Advertisements
Similar presentations
Dynamic Memory Allocation in C.  What is Memory What is Memory  Memory Allocation in C Memory Allocation in C  Difference b\w static memory allocation.
Advertisements

Register Allocation Zach Ma.
R4 Dynamically loading processes. Overview R4 is closely related to R3, much of what you have written for R3 applies to R4 In R3, we executed procedures.
Accelerating External Search with Bitstate Hashing Stefan Edelkamp Shahid Jabbar Computer Science Department University of Dortmund, Dortmund, Germany.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Efficient Reachability Analysis for Verification of Asynchronous Systems Nishant Sinha.
U NIVERSITY OF M ASSACHUSETTS, A MHERST – Department of Computer Science The Implementation of the Cilk-5 Multithreaded Language (Frigo, Leiserson, and.
Assembly Code Verification Using Model Checking Hao XIAO Singapore University of Technology and Design.
Embedded Systems Programming Introduction to cross development techniques.
Informationsteknologi Monday, September 10, 2007Computer Systems/Operating Systems - Class 31 Today’s class Review of more C Operating system overview.
File System Structure §File structure l Logical storage unit l Collection of related information §File system resides on secondary storage (disks). §File.
CS-502 Fall 2006Processes in Unix, Linux, & Windows 1 Processes in Unix, Linux, and Windows CS502 Operating Systems.
Organizing files for performance Chapter Data compression Advantages of reduced file size Redundancy reduction: state code example Repeating sequences:
File System Implementation
Improving Error Discovery using Guided Search Neha Rungta & Eric Mercer Computer Science Department Brigham Young University, Provo UT.
Anti Virus Techniques Jordan & Ryan Use of Checksum The Binary for key files is added up to a number especially in the boot files When these files are.
Review C++ exception handling mechanism Try-throw-catch block How does it work What is exception specification? What if a exception is not caught?
Operating System Chapter 7. Memory Management Lynn Choi School of Electrical Engineering.
CMPSC 16 Problem Solving with Computers I Spring 2014 Instructor: Lucas Bang Lecture 15: Linked data structures.
chap13 Chapter 13 Programming in the Large.
Types for Programs and Proofs Lecture 1. What are types? int, float, char, …, arrays types of procedures, functions, references, records, objects,...
Buffer Overflows Lesson 14. Example of poor programming/errors Buffer Overflows result of poor programming practice use of functions such as gets and.
Distributed Verification of Multi-threaded C++ Programs Stefan Edelkamp joint work with Damian Sulewski and Shahid Jabbar.
8.4 paging Paging is a memory-management scheme that permits the physical address space of a process to be non-contiguous. The basic method for implementation.
Processes and Threads CS550 Operating Systems. Processes and Threads These exist only at execution time They have fast state changes -> in memory and.
By Teacher Asma Aleisa Year 1433 H.   Goals of memory management  To provide a convenient abstraction for programming  To allocate scarce memory resources.
University of Virginia Department of Computer Science1 Applications of Software Dynamic Translation Jack Davidson University of Virginia February 27, 2002.
PA0 due 60 hours. Lecture 4 Memory Management OSTEP Virtualization CPU: illusion of private CPU RAM: illusion of private memory Concurrency Persistence.
Dr. T. Doom 11.1 CEG 433/633 - Operating Systems I Chapter 11: File-System Implementation File structure –Logical storage unit –Collection of related information.
Silberschatz and Galvin  Operating System Concepts File-System Implementation File-System Structure Allocation Methods Free-Space Management.
Page 111/15/2015 CSE 30341: Operating Systems Principles Chapter 11: File System Implementation  Overview  Allocation methods: Contiguous, Linked, Indexed,
Cost-Optimal Planning with Constraints and Preferences in Large State Spaces Stefan Edelkamp, Shahid Jabbar, Mohammed Nazih University of Dortmund.
Model Checking Java Programs using Structural Heuristics
Parallel External Directed Model Checking with Linear I/O Shahid Jabbar Stefan Edelkamp Computer Science Department University of Dortmund, Dortmund, Germany.
10.1 CSE Department MAITSandeep Tayal 10 :File-System Implementation File-System Structure Allocation Methods Free-Space Management Directory Implementation.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 11 File-System Implementation Slide 1 Chapter 11: File-System Implementation.
12/8/2015\course\cpeg323-07Fs\Topic2b-323.ppt1 Topic 2b High-Level languages and System Software (Languages) Introduction to Computer Systems Engineering.
Windows Programming, C.-S. Shieh, KUAS EC, Chapter 0 Overview.
External A* Stefan Edelkamp, Shahid Jabbar (ich) University of Dortmund, Germany and Stefan Schrödl (DaimlerChrysler, CA)
Chapter 4 Process Abstraction Chien-Chung Shen CIS, UD
External Memory Value Iteration Stefan Edelkamp, Shahid Jabbar Chair for Programming Systems, University of Dortmund, Germany Blai Bonet Departamento de.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 12: File System Implementation File System Structure File System Implementation.
I/O Efficient Directed Model Checking Shahid Jabbar and Stefan Edelkamp, Computer Science Department University of Dortmund, Germany.
Large Scale External Directed Liveness Checking Stefan Edelkamp Shahid Jabbar Computer Science Department University of Dortmund, Dortmund, Germany.
Symbolic Model Checking of Software Nishant Sinha with Edmund Clarke, Flavio Lerda, Michael Theobald Carnegie Mellon University.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Main Memory CSSE 332 Operating Systems Rose-Hulman Institute of Technology.
1 Binghamton University Exam 1 Review CS Binghamton University Birds eye view -- Topics Information Representation Bit-level manipulations Integer.
File-System Management
Data exfiltration via USB based devices
ASIACCS 2007 AutoPaG: Towards Automated Software Patch Generation with Source Code Root Cause Identification and Repair Zhiqiang Lin 1,3 Xuxian Jiang 2,
File-System Implementation
Debugging Memory Issues
Types for Programs and Proofs
Process Memory COMP 40: Machine Structure and
How do we tackle the extended requirements?
Program Execution in Linux
ECET 370 HELPS Lessons in Excellence- -ecet370helps.com.
ECET 370 HELPS Education for Service- - ecet370helps.com.
Operating Systems (CS 340 D)
Implementation of IDEA on a Reconfigurable Computer
Design IV Chapter 18 11/14/2018 Crowley OS Chap. 18.
Chap. 8 :: Subroutines and Control Abstraction
Chap. 8 :: Subroutines and Control Abstraction
CPSC 457 Operating Systems
Understanding Program Address Space
Outline Allocation Free space management Memory mapped files
Lecture 3: Main Memory.
Operating Systems (CS 340 D)
Lecture 4: Instruction Set Design/Pipelining
Presentation transcript:

External Program Model Checking Stefan Edelkamp, Shahid Jabar, Dino Midzic, Daniel Rikowski and Damian Sulewski Computer Science Department University of Dortmund Otto-Hahn Straße 14

- Why software model checking - States in our program model checker StEAM - Externalization Algorithm - Experimental results Motivation - Overview

Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; } Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; } Model checker Formal specification of code manual rewriting Checking a software implementation rather then a formal specification

Formal specification of code manual rewriting Checking a software implementation rather then a formal specification Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; } Model checker

Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; } Error trail manual rewriting Checking a software implementation rather then a formal specification Model checker Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; }

Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; } Model checker Virtual Machine Compiler Using a virtual machine to explore a model Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; }

Model checker Virtual Machine Model checker Virtual Machine Assumes an error free virtual machine + Can detect errors in the implementation + User is not required to be familiar with modeling language - Exceeds the available memory - Slows down the exploration Using a virtual machine to explore a model Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; } Compiler Int main(int argc, char ** argv) { int a = 0; int b = 7; int c = b / a; }

Model checker Virtual Machine Techniques for state space compression - Partial order reduction - Minimal binary state encoding - Abstraction methods - Bit-state hashing - Search heuristics

External model checking - Using virtual memory can slow down the performance significantly - General purpose virtual memory scheme is used - External memory algorithms are more informed about the states - Show remarkable performance in the large-scale analysis of games - Introduced in explicit-state model checker SPIN

=physical memory = VM_memory PC FP SP R0 … FP0 m1m1 s1s1 Obj. file mem. Image(MI) zero ebd move (4,%r2),%r3 … Int a,b,c … Int d=12 Int e=17 Int f=-1 … Code-Section BSS-Section Data-Section a=4 b=6 c=12 BSS-memory =program memory dyn. alloc.regions States in StEAM PC FP SP R0 … FP0 m2m2 s2s2 mn 1 mn 2 mn 3 memory-pool li 1 li 2 li 3 lock-pool PC FP SP R0 … FP0 mnmn snsn

The externalization algorithm - Relaxed the requirement of a constant main memory - Mini-states - Pointer to a full system state on the secondary memory - Its predecessor information - Constant size in contrast to a full state

The externalization algorithm Cache Mini-states Secondary memory Internal memory

The externalization algorithm CacheSecondary memoryMini-states Internal memory

The externalization algorithm CacheSecondary memoryMini-states Internal memory

The externalization algorithm CacheSecondary memoryMini-states Internal memory

The externalization algorithm CacheSecondary memoryMini-states Internal memory

The externalization algorithm - external collapse compression Full state CachesFiles Data - Section BSS - Section Stack Fixed values

Experimental results - first running case study: the Dining Philosophers

Experimental results – Philosophers using most blocked heuristic Internal memory in MB Philosophers

Experimental results – Philosophers using most blocked heuristic Time in seconds Philosophers

Experimental results – Philosophers using most blocked heuristic Time in seconds Philosophers

Experimental results - second running case study: the 8-Puzzle

Experimental results – 8-Puzzle using Breath First Search Time in seconds Moves

Experimental results – 8-Puzzle using Breath First Search Internal memory in MB Moves

Conclusion and future work - StEAM is the first external program model checker - Largest exploration in program model checking - Software still experimental - Can be used for non-deterministic programs - Further information on