Http://runtimeverification.com RV-Monitor: Efficient Parametric Runtime Verification with Simultaneous Properties Qingzhou Luo, Yi Zhang, Choonghwan Lee,

Slides:



Advertisements
Similar presentations
A Survey of Runtime Verification Jonathan Amir 2004.
Advertisements

Dynamic Thread Assignment on Heterogeneous Multiprocessor Architectures Pree Thiengburanathum Advanced computer architecture Oct 24,
Scalable Multi-Cache Simulation Using GPUs Michael Moeng Sangyeun Cho Rami Melhem University of Pittsburgh.
RV: A Runtime Verification Framework for Monitoring, Prediction and Mining Patrick Meredith Grigore Rosu University of Illinois at Urbana-Champaign (UIUC)
Formal Modelling of Reactive Agents as an aggregation of Simple Behaviours P.Kefalas Dept. of Computer Science 13 Tsimiski Str Thessaloniki Greece.
Effects of Virtual Cache Aliasing on the Performance of the NetBSD Operating System Rafal Boni CS 535 Project Presentation.
/ PSWLAB Efficient Decentralized Monitoring of Safety in Distributed System K Sen, A Vardhan, G Agha, G Rosu 20 th July 2007 Presented by.
Generating Novel Reflectance Functions Adam Brady.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 13: Runtime Monitoring.
SEERE Workshop, Neum Tempura Retargeting Damyan Mitev, Vladimir Valkanov Plovdiv University “Paisii Hilendarski”
Language Support for Lightweight transactions Tim Harris & Keir Fraser Presented by Narayanan Sundaram 04/28/2008.
1 An Empirical Study on Large-Scale Content-Based Image Retrieval Group Meeting Presented by Wyman
Router modeling using Ptolemy Xuanming Dong and Amit Mahajan May 15, 2002 EE290N.
Qin Zhao (MIT) Derek Bruening (VMware) Saman Amarasinghe (MIT) Umbra: Efficient and Scalable Memory Shadowing CGO 2010, Toronto, Canada April 26, 2010.
A university for the world real R © 2009, Chapter 23 Epilogue Wil van der Aalst Michael Adams Arthur ter Hofstede Nick Russell.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Managing Large RDF Graphs (Infinite Graph) Vaibhav Khadilkar Department of Computer Science, The University of Texas at Dallas FEARLESS engineering.
With Microsoft Windows 7© 2012 Pearson Education, Inc. Publishing as Prentice Hall1 PowerPoint Presentation to Accompany GO! with Microsoft ® Windows 7.
1 The Google File System Reporter: You-Wei Zhang.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
CHEN Ge CSIS, HKU March 9, Jigsaw W3C’s Java Web Server.
IVEC: Off-Chip Memory Integrity Protection for Both Security and Reliability Ruirui Huang, G. Edward Suh Cornell University.
Eraser: A Dynamic Data Race Detector for Multithreaded Programs STEFAN SAVAGE, MICHAEL BURROWS, GREG NELSON, PATRICK SOBALVARRO, and THOMAS ANDERSON Ethan.
Optimizing multi-pattern searches for compressed suffix arrays Kalle Karhu Department of Computer Science and Engineering Aalto University, School of Science,
ISV Innovation Presented by ISV Innovation Presented by Business Intelligence Fundamentals: Data Cleansing Ola Ekdahl IT Mentors 9/12/08.
Evaluating FERMI features for Data Mining Applications Masters Thesis Presentation Sinduja Muralidharan Advised by: Dr. Gagan Agrawal.
2005 Epocrates, Inc. All rights reserved. Integrating XML with legacy relational data for publishing on handheld devices David A. Lee Senior member of.
R Environment and Variable Lookup Apr R Environment and Variable Lookup Outline  R Environment and Variable Lookup  R Byte-Code Interpreter.
HIT2037- HIT6037 Software Development in Java 22 – Data Structures and Introduction.
Monitoring IVHM Systems using a Monitor-Oriented Programming Framework S. Ghoshal, S. Manimaran - QSI G. Rosu, T. Serbanuta, G. Stefanescu - UIUC.
The Anatomy of a Large-Scale Hyper textual Web Search Engine S. Brin, L. Page Presenter :- Abhishek Taneja.
1 Biometric Databases. 2 Overview Problems associated with Biometric databases Some practical solutions Some existing DBMS.
The RV System Tutorial Patrick Meredith and Grigore Rosu joint work with Feng Chen, Dongyun Jin, Dennis Griffith, Michael Ilseman Runtime Verification,
DynamicMR: A Dynamic Slot Allocation Optimization Framework for MapReduce Clusters Nanyang Technological University Shanjiang Tang, Bu-Sung Lee, Bingsheng.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
CS533 Concepts of Operating Systems Jonathan Walpole.
From the customer’s perspective the SRS is: How smart people are going to solve the problem that was stated in the System Spec. A “contract”, more or less.
Reachability Testing of Concurrent Programs1 Reachability Testing of Concurrent Programs Richard Carver, GMU Yu Lei, UTA.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
Kendo: Efficient Deterministic Multithreading in Software M. Olszewski, J. Ansel, S. Amarasinghe MIT to be presented in ASPLOS 2009 slides by Evangelos.
A Case Study in Building Layered DHT Applications
Qingzhou Luo and Grigore Rosu University of Illinois Urbana Champaign
IM.Grid: A Grid Computing Solution for image processing
The most important work in Software Verification
Introduction Enosis Learning.
runtime verification Brief Overview Grigore Rosu
Parametric Trace Slicing and Monitoring
Database Performance Tuning and Query Optimization
Introduction Enosis Learning.
-A File System for Lots of Tiny Files
Matching Logic - A New Program Verification Approach -
Page Replacement.
SAT-Based Area Recovery in Technology Mapping
Ann Gordon-Ross and Frank Vahid*
Optimizing MapReduce for GPUs with Effective Shared Memory Usage
Generating Optimal Linear Temporal Logic Monitors by Coinduction
Closure Representations in Higher-Order Programming Languages
Reachability testing for concurrent programs
Multithreaded Programming
Dongyun Jin, Patrick Meredith, Dennis Griffith, Grigore Rosu
Overview of Query Evaluation
Probabilistic Databases
Chapter 11 Database Performance Tuning and Query Optimization
View Inter-Prediction GAN: Unsupervised Representation Learning for 3D Shapes by Learning Global Shape Memories to Support Local View Predictions 1,2 1.
Runtime Safety Analysis of Multithreaded Programs
Translation Buffers (TLBs)
Rohan Yadav and Charles Yuan (rohany) (chenhuiy)
Dynamic Binary Translators and Instrumenters
Threads CSE 2431: Introduction to Operating Systems
Presentation transcript:

http://runtimeverification.com RV-Monitor: Efficient Parametric Runtime Verification with Simultaneous Properties Qingzhou Luo, Yi Zhang, Choonghwan Lee, Dongyun Jin, Patrick O’Neil Meredith, Traian Florin Serbanuta and Grigore Rosu University of Illinois at Urbana-Champaign Runtime Verification, Inc.

Motivation RV can significantly increase system reliability However, RV still not very used in production Why? Lack of specifications Not easy to write specifications to check against High monitoring overhead Many RV systems incur large overhead when checking multiple properties simultaneously in real world software

Our Contributions Large collection of formal Java API specifications A comprehensive set (179 in total) of formal specifications covering io, network, lang, util packages Scalable Runtime Verification Monitoring all 179 specifications simultaneously Large scale evaluation - Compare with other state-of-art RV tools

Java API Specifications (Informal) Specifications for Java API Usage If map is modified while an iteration over the set is in progress ... the results of the iteration are undefined. Unintuitive, ambiguous and hard to monitor We manually formalized properties implied in such Java API documentation text covering Four packages (only): io, lang, util and net Tried to mine them, but the didn’t work well

Formal Specifications From Java API Separated specification-implying text - If the map is modified while an iteration over the set is in progress ... the results of the iteration are undefined. is modified: put(...)/clear()/… iteration … in progress: hasNext()/next() undefined: error Wrote specifications using various formalisms Extended regular expressions (most common) FSM, LTL, CFG, SRS (Turing complete) Classified formal specifications as Error, Warning, Suggestion

http://fsl.cs.illinois.edu/annotated-java/index_spec.html

Reducing Monitoring Overhead Most RV Systems are not capable of monitoring multiple properties simultaneously Monitor lookup overhead Memory / Garbage collection overhead Proposing techniques to reduce RV overhead Global Weak Reference Table (GWRT) with Caches Combining Indexing Trees Fine grained locking

Indexing Trees An indexing tree is a multi-level map that, at each level, indexes each concrete object of the parameter binding. One can retrieve the related monitor instance by searching for corresponding concrete object at each level. Map_UnsafeIterator(Map m, Collection c, Iterator i) { creation event getC after(Map m) returning(Collection c) .... event getI after(Collection c) returning(Iterator i) … event modifyM before(Map m) ...   event modifyC before(Collection c) ... event useI before(Iterator i) ... ere : getC (modifyM | modifyC)* getI useI* (modifyM | modifyC)+ use @match { print("Map was modified while being iterated"); } }

Global Weak Reference Table (GWRT) Problem: when constructing indexing tree , multiple weak references for a single object are created. Solution: A GWRT for each parameter type that stores only one weak reference for each distinct object.

Combining Indexing Trees - Problem: Monitoring a real program causes millions of parameter and monitor instances and thus the size of indexing trees becomes quite large Solution: Combine indexing trees originating from the same specification, if they share the same prefix

Combining Indexing Trees Before After

Fine-grained Locking Problem: JavaMOP uses a single global lock throughout all the operations for handling an event. Solution: Remove the global lock, and instead use fine-grained locking given that each of the GWRTS and indexing trees can be processed independently

(Re)Implementation

Evaluation Runtime Overhead Comparison with previous JavaMOP with all 179 specifications Comparison with MOPBox on Collection_UnsafeIterator, the most heavily used spec Running on all DaCapo benchmarks Violations Finding Exceptions thrown / thread unsafe object / ...

Evaluation – Runtime Overhead

Evaluation – Violation Finding

Ineffectual Approaches Combining Indexing Trees across Specifications Wasted space for uncommon parts Enhanced Indexing Cache Hit ratio is already high Indexing Tree Cleaning by GWRT Costs more than cleaning by indexing tree themselves, although GWRT is more effective Statistics-Based Indexing Tree Cleaning Saving by partial cleanup is relatively small

Conclusion Collection of 179 formal specifications covering most commonly used Java packages; assistance tool RV-Monitor: new monitoring system, outperforms old JavaMOP when monitoring multiple properties; new JavaMOP implemented on top Comprehensive evaluation, showing that new optimizations pay off Future? Parallelize: indexing, monitoring Static analysis: do not instrument unnecessarily