An introduction to RGSep. Viktor Vafeiadis

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "An introduction to RGSep. Viktor Vafeiadis"

Transcription

1 An introduction to RGSep Viktor Vafeiadis

2 Example: lock-coupling list There is one lock per node; threads acquire locks in a hand over hand fashion. If a node is locked, we can insert a node just after it. If two adjacent nodes are locked, we can remove the second.

3 Example: lock-coupling list There is one lock per node; threads acquire locks in a hand over hand fashion. If a node is locked, we can insert a node just after it. If two adjacent nodes are locked, we can remove the second.

4 Example: lock-coupling list There is one lock per node; threads acquire locks in a hand over hand fashion. If a node is locked, we can insert a node just after it. If two adjacent nodes are locked, we can remove the second.

5 Example: lock-coupling list There is one lock per node; threads acquire locks in a hand over hand fashion. If a node is locked, we can insert a node just after it. If two adjacent nodes are locked, we can remove the second.

6 Example: lock-coupling list There is one lock per node; threads acquire locks in a hand over hand fashion. If a node is locked, we can insert a node just after it. If two adjacent nodes are locked, we can remove the second.

7 Example: lock-coupling list There is one lock per node; threads acquire locks in a hand over hand fashion. If a node is locked, we can insert a node just after it. If two adjacent nodes are locked, we can remove the second.

8 Example: lock-coupling list There is one lock per node; threads acquire locks in a hand over hand fashion. If a node is locked, we can insert a node just after it. If two adjacent nodes are locked, we can remove the second.

9 Example: lock-coupling list There is one lock per node; threads acquire locks in a hand over hand fashion. If a node is locked, we can insert a node just after it. If two adjacent nodes are locked, we can remove the second.

10 Operations (actions) Lock-coupling list Lock Unlock Add node Delete node

11 Part I. Basic concepts Local & shared state Actions Program & environment Program specifications Stability

12 Local & shared state The total state is logically divided into two components: Shared: accessible by all threads via synchronisation Local: accessible only by one thread, its owner Shared Local 6 Figure. State of the lock-coupling list just before inserting a new node. The node to be added is local because other threads cannot yet access it.

13 Actions (1/3) Actions describe minimal atomic changes to the shared state. Lock Unlock An action allows any part of the shared state that satisfies the LHS to be changed to a part satisfying the RHS, but the rest of the shared state must not be changed.

14 Actions (2/3) Actions can also adjust the boundary between local state and stared state. This is also known as tranfer of ownership. Add node This node becomes shared. Delete node This node becomes local.

15 Actions (3/3) Example: Lock coupling list Shared Local 6 Add node

16 Actions (3/3) Example: Lock coupling list Shared Local Add node

17 Actions (3/3) Example: Lock coupling list Shared Local Lock node

18 Actions (3/3) Example: Lock coupling list Shared Local Lock node

19 Actions (3/3) Example: Lock coupling list Shared Local Delete node

20 Actions (3/3) Example: Lock coupling list Shared Local 6 Delete node

21 Actions (3/3) Example: Lock coupling list Shared Local 6 Now, the node is local; we can safely dispose it.

22 Actions (3/3) Example: Lock coupling list Shared Local Now, the node is local; we can safely dispose it.

23 Program & environment Program: the current thread being verified. Environment: all other threads of the system that execute in parallel with the thread being verified. Interference. The program interferes with the environment by modifying the shared state. Conversely, the environment interferes with the program by modifying the shared state.

24 Program specifications The specification of a program consists of two assertions (precondition & postcondition), and two sets of actions: Rely: Describes the interference that the program can tolerate from the environment; i.e. specifies how the environment can change the shared state. Guarantee: Describes the interference that the program imposes on its environment; i.e. specifies how the program can change the shared state.

25 Stability (1/2) Definition. An assertion is stable if and only if it is preserved under interference by other threads. Example 1. The following assertion is not stable A A For instance, another thread could remove node 3 or add a node after node 11.

26 Stability (1/2) Definition. An assertion is stable if and only if it is preserved under interference by other threads. Example 1. The following assertion is not stable A A For instance, another thread could remove node 3 or add a node after node 11.

27 Stability (1/2) Definition. An assertion is stable if and only if it is preserved under interference by other threads. Example 1. The following assertion is not stable A For instance, another thread could remove node 3 or add a node after node 11. A 12

28 Stability (2/2) Example 2. The following assertion, however, is stable. A 5 A 7 Lock B Unlock B

29 Stability (2/2) Example 2. The following assertion, however, is stable. A 5 A 7 Add node B B Delete node B B B

30 Part II. Program logic Syntax & semantics of assertions Syntax & semantics of actions Syntax & semantics of judgements Some proof rules Checking stability

31 Assertion syntax Separation Logic Extended logic P, Q ::= false emp e = e e e x. P P Q P Q P Q h SL P Q h SL (P Q) h. (h SL P ) (h h SL Q) p, q ::= P P p q p q p q x. p x. p local shared

32 Assertion semantics l, s P l SL P l, s P l = (s SL P ) l, s p 1 p 2 l 1, l 2. (l = l 1 l 2 ) (l 1, s p 1 ) (l 2, s p 2 ) Split local state; share global state.

33 Actions x 0, v, t x tid, v, t x tid, v, t x 0, v, t x tid, v, t x tid, v, y y 0, v, t x tid, v, y y tid, v, t x tid, v, t

34 Judgements C sat (p, R, G, q) (precondition, rely, guarantee, postcondition)

35 Parallel rule C 1 sat (p 1, R G 2, G 1, q 1 ) C 2 sat (p 2, R G 1, G 2, q 2 ) (C 1 C 2 ) sat (p 1 p 2, R, G 1 G 2, q 1 q 2 ) Splits local state; Shares global state.

36 Atomic commands p, q stable under R (atomic C) sat (p,, G, q) (atomic C) sat (p, R, G, q) P 2, Q 2 precise (P 2 Q 2 ) G C sat ( (P 1 P 2,,, Q 1 Q 2 ) (atomic C) sat P 1 P 2 F,, G, Q 1 Q 2 F ) Local state Shared state

37 Stability S stable under P Q iff ((P S) Q) S

38 The End Further topics: Automation (SmallfootRG) Local guards & provided clauses Modular reasoning about memory allocators Proving linearisability of concurrent algorithms

Proving That Non-Blocking Algorithms Don t Block

Proving That Non-Blocking Algorithms Don t Block Proving That Non-Blocking Algorithms Don t Block Alexey Gotsman University of Cambridge Byron Cook Microsoft Research Matthew Parkinson University of Cambridge Viktor Vafeiadis Microsoft Research Abstract

More information

Verifying Semantic of System Composition for an Aspect-Oriented Approach

Verifying Semantic of System Composition for an Aspect-Oriented Approach 2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach

More information

Reasoning about Optimistic Concurrency Using a Program Logic for History

Reasoning about Optimistic Concurrency Using a Program Logic for History Reasoning about Optimistic Concurrency Using a Program Logic for History Ming Fu 1, Yong Li 1, Xinyu Feng 1,2, Zhong Shao 3, and Yu Zhang 1 1 University of Science and Technology of China 2 Toyota Technological

More information

Formal Verification and Linear-time Model Checking

Formal Verification and Linear-time Model Checking Formal Verification and Linear-time Model Checking Paul Jackson University of Edinburgh Automated Reasoning 21st and 24th October 2013 Why Automated Reasoning? Intellectually stimulating and challenging

More information

Specification and Analysis of Contracts Lecture 1 Introduction

Specification and Analysis of Contracts Lecture 1 Introduction Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical

More information

Concurrent Programming

Concurrent Programming Concurrent Programming Principles and Practice Gregory R. Andrews The University of Arizona Technische Hochschule Darmstadt FACHBEREICH INFCRMATIK BIBLIOTHEK Inventar-Nr.:..ZP.vAh... Sachgebiete:..?r.:..\).

More information

CHAPTER 7 GENERAL PROOF SYSTEMS

CHAPTER 7 GENERAL PROOF SYSTEMS CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes

More information

3 Extending the Refinement Calculus

3 Extending the Refinement Calculus Building BSP Programs Using the Refinement Calculus D.B. Skillicorn? Department of Computing and Information Science Queen s University, Kingston, Canada skill@qucis.queensu.ca Abstract. We extend the

More information

Algorithmic Software Verification

Algorithmic Software Verification Algorithmic Software Verification (LTL Model Checking) Azadeh Farzan What is Verification Anyway? Proving (in a formal way) that program satisfies a specification written in a logical language. Formal

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

Logic in general. Inference rules and theorem proving

Logic in general. Inference rules and theorem proving Logical Agents Knowledge-based agents Logic in general Propositional logic Inference rules and theorem proving First order logic Knowledge-based agents Inference engine Knowledge base Domain-independent

More information

VDM vs. Programming Language Extensions or their Integration

VDM vs. Programming Language Extensions or their Integration VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,

More information

Using UML Part Two Behavioral Modeling Diagrams

Using UML Part Two Behavioral Modeling Diagrams UML Tutorials Using UML Part Two Behavioral Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,

More information

Extended Static Checking for Java

Extended Static Checking for Java Lukas TU München - Seminar Verification 14. Juli 2011 Outline 1 Motivation 2 ESC/Java example 3 ESC/JAVA architecture VC generator Simplify 4 JML + ESC/Java annotation language JML What ESC/Java checks

More information

Loop Invariants and Binary Search

Loop Invariants and Binary Search Loop Invariants and Binary Search Chapter 4.3.3 and 9.3.1-1 - Outline Ø Iterative Algorithms, Assertions and Proofs of Correctness Ø Binary Search: A Case Study - 2 - Outline Ø Iterative Algorithms, Assertions

More information

Kirsten Sinclair SyntheSys Systems Engineers

Kirsten Sinclair SyntheSys Systems Engineers Kirsten Sinclair SyntheSys Systems Engineers Kirsten Sinclair SyntheSys Systems Engineers Spicing-up IBM s Enterprise Architecture tools with Petri Nets On Today s Menu Appetiser: Background Starter: Use

More information

CS510 Software Engineering

CS510 Software Engineering CS510 Software Engineering Propositional Logic Asst. Prof. Mathias Payer Department of Computer Science Purdue University TA: Scott A. Carr Slides inspired by Xiangyu Zhang http://nebelwelt.net/teaching/15-cs510-se

More information

David Dye. Extract, Transform, Load

David Dye. Extract, Transform, Load David Dye Extract, Transform, Load Extract, Transform, Load Overview SQL Tools Load Considerations Introduction David Dye derekman1@msn.com HTTP://WWW.SQLSAFETY.COM Overview ETL Overview Extract Define

More information

Inter-process Buffers in Separation Logic with Rely-Guarantee

Inter-process Buffers in Separation Logic with Rely-Guarantee Under consideration for publication in Formal Aspects of Computing Inter-process Buffers in Separation Logic with Rely-Guarantee Richard Bornat and Hasan Amjad Middlesex University, London, UK Abstract.

More information

New and Changed Application Services in Informatica 10.0

New and Changed Application Services in Informatica 10.0 New and Changed Application Services in Informatica 10.0 1993-2015 Informatica LLC. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording

More information

Sofware Requirements Engineeing

Sofware Requirements Engineeing Sofware Requirements Engineeing Three main tasks in RE: 1 Elicit find out what the customers really want. Identify stakeholders, their goals and viewpoints. 2 Document write it down (). Understandable

More information

Traffic Engineering Management Concepts

Traffic Engineering Management Concepts 3 CHAPTER This chapter includes an overview of Cisco Prime Fulfillment and of some of the concepts used in this guide. This chapter includes the following sections: Prime Fulfillment TEM Overview, page

More information

Modular Verification of Preemptive OS Kernels

Modular Verification of Preemptive OS Kernels Modular Verification of Preemptive OS Kernels Alexey Gotsman IMDEA Software Institute Alexey.Gotsman@imdea.org Hongseok Yang University of Oxford Hongseok.Yang@cs.ox.ac.uk Abstract Most major OS kernels

More information

Regression Verification: Status Report

Regression Verification: Status Report Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software

More information

A Case for Static Analyzers in the Cloud (Position paper)

A Case for Static Analyzers in the Cloud (Position paper) A Case for Static Analyzers in the Cloud (Position paper) Michael Barnett 1 Mehdi Bouaziz 2 Manuel Fähndrich 1 Francesco Logozzo 1 1 Microsoft Research, Redmond, WA (USA) 2 École normale supérieure, Paris

More information

Software testing. Objectives

Software testing. Objectives Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating

More information

PL/SQL Practicum #2: Assertions, Exceptions and Module Stability

PL/SQL Practicum #2: Assertions, Exceptions and Module Stability PL/SQL Practicum #2: Assertions, Exceptions and Module Stability John Beresniewicz Technology Manager Precise Software Solutions Agenda Design by Contract Assertions Exceptions Modular Code DESIGN BY CONTRACT

More information

PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE

PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE International Journal of Computer ScienceandCommunication Vol. 2, No. 1, January-June2011, pp. 153-157 PROPERTECHNIQUEOFSOFTWARE INSPECTIONUSING GUARDED COMMANDLANGUAGE Neeraj Kumar Singhania University,

More information

Hagit Attiya and Eshcar Hillel. Computer Science Department Technion

Hagit Attiya and Eshcar Hillel. Computer Science Department Technion Hagit Attiya and Eshcar Hillel Computer Science Department Technion !!" What are highly-concurrent data structures and why we care about them The concurrency of existing implementation techniques Two ideas

More information

Design Patterns in C++

Design Patterns in C++ Design Patterns in C++ Concurrency Patterns Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa May 4, 2011 G. Lipari (Scuola Superiore Sant Anna) Concurrency Patterns May 4,

More information

Concurrency control. Concurrency problems. Database Management System

Concurrency control. Concurrency problems. Database Management System Concurrency control Transactions per second (tps) is the measure of the workload of a operational DBMS; if two transactions access concurrently to the same data there is a problem: the module who resolve

More information

Software-platform-independent, Precise Action Specifications for UML. Stephen J. Mellor. Project Technology, Inc. steve@projtech.com.

Software-platform-independent, Precise Action Specifications for UML. Stephen J. Mellor. Project Technology, Inc. steve@projtech.com. Software-platform-independent, Precise Action Specifications for UML Stephen J. Mellor Project Technology, Inc. steve@projtech.com Steve Tockey Rockwell Collins, Inc. srtockey@collins.rockwell.com Rodolphe

More information

Praspel: A Specification Language for Contract-Driven Testing in PHP

Praspel: A Specification Language for Contract-Driven Testing in PHP Praspel: A Specification Language for Contract-Driven Testing in PHP Ivan Enderlin Frédéric Dadeau Alain Giorgetti Abdallah Ben Othman October 27th, 2011 Meetings: LTP MTVV Ivan Enderlin, Frédéric Dadeau,

More information

Overview of Scalable Distributed Database System SD-SQL Server

Overview of Scalable Distributed Database System SD-SQL Server Overview of Scalable Distributed Database System Server Witold Litwin 1, Soror Sahri 2, Thomas Schwarz 3 CERIA, Paris-Dauphine University 75016 Paris, France Abstract. We present a scalable distributed

More information

Views: Compositional Reasoning for Concurrent Programs

Views: Compositional Reasoning for Concurrent Programs Views: Compositional Reasoning for Concurrent Programs Thomas Dinsdale-Young 1, Lars Birkedal 2, Philippa Gardner 1, Matthew J. Parkinson 3, and Hongseok Yang 4 1 Imperial College London 3 Microsoft Research

More information

CSE 880. Advanced Database Systems. Active Database Design Issues

CSE 880. Advanced Database Systems. Active Database Design Issues CSE 880 Advanced Database Systems Active Database Design Issues S. Pramanik 1 Design Principles for Active Databases 1. Problems: Complex interactions due to cascading of triggers. Unknown side effects

More information

Transactions and ACID in MongoDB

Transactions and ACID in MongoDB Transactions and ACID in MongoDB Kevin Swingler Contents Recap of ACID transactions in RDBMSs Transactions and ACID in MongoDB 1 Concurrency Databases are almost always accessed by multiple users concurrently

More information

Oracle9i Data Guard: SQL Apply Best Practices. An Oracle White Paper September 2003

Oracle9i Data Guard: SQL Apply Best Practices. An Oracle White Paper September 2003 Oracle9i Data Guard: SQL Apply Best Practices An Oracle White Paper September 2003 Oracle9i Data Guard: SQL Apply Best Practices Introduction... 3 SQL Apply Best Practices & Observations At a Glance...

More information

Patterns of Information Management

Patterns of Information Management PATTERNS OF MANAGEMENT Patterns of Information Management Making the right choices for your organization s information Summary of Patterns Mandy Chessell and Harald Smith Copyright 2011, 2012 by Mandy

More information

TNM090 Software Engineering. Software Engineering

TNM090 Software Engineering. Software Engineering TNM090 Software Engineering Software Engineering Software Engineering Not programming => Software system development customer/producer negotiations budget and time constraints quality and feature requirements

More information

DataBlitz Main Memory DataBase System

DataBlitz Main Memory DataBase System DataBlitz Main Memory DataBase System What is DataBlitz? DataBlitz is a general purpose Main Memory DataBase System that enables: Ð high-speed access to data Ð concurrent access to shared data Ð data integrity

More information

A Comparison Of Shared Memory Parallel Programming Models. Jace A Mogill David Haglin

A Comparison Of Shared Memory Parallel Programming Models. Jace A Mogill David Haglin A Comparison Of Shared Memory Parallel Programming Models Jace A Mogill David Haglin 1 Parallel Programming Gap Not many innovations... Memory semantics unchanged for over 50 years 2010 Multi-Core x86

More information

CASE STUDY: Oracle TimesTen In-Memory Database and Shared Disk HA Implementation at Instance level. -ORACLE TIMESTEN 11gR1

CASE STUDY: Oracle TimesTen In-Memory Database and Shared Disk HA Implementation at Instance level. -ORACLE TIMESTEN 11gR1 CASE STUDY: Oracle TimesTen In-Memory Database and Shared Disk HA Implementation at Instance level -ORACLE TIMESTEN 11gR1 CASE STUDY Oracle TimesTen In-Memory Database and Shared Disk HA Implementation

More information

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Introduction Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification Advanced Topics in Software Engineering 1 Concurrent Programs Characterized by

More information

Smallfoot: Modular Automatic Assertion Checking with Separation Logic

Smallfoot: Modular Automatic Assertion Checking with Separation Logic In: FMCO 2005, LNCS 4111, pp. 115 137. Smallfoot: Modular Automatic Assertion Checking with Separation Logic Josh Berdine 1, Cristiano Calcagno 2, and Peter W. O Hearn 3 1 Microsoft Research 2 Imperial

More information

Java SE 7 Programming

Java SE 7 Programming Oracle University Contact Us: 1.800.529.0165 Java SE 7 Programming Duration: 5 Days What you will learn This Java SE 7 Programming training explores the core Application Programming Interfaces (API) you'll

More information

Revolutionized DB2 Test Data Management

Revolutionized DB2 Test Data Management Revolutionized DB2 Test Data Management TestBase's Patented Slice Feature Provides a Fresh Solution to an Old Set of DB2 Application Testing Problems The challenge in creating realistic representative

More information

Static Program Transformations for Efficient Software Model Checking

Static Program Transformations for Efficient Software Model Checking Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major

More information

Java SE 7 Programming

Java SE 7 Programming Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Java SE 7 Programming Duration: 5 Days What you will learn This Java Programming training covers the core Application Programming

More information

Experience of so-ware engineers using TLA+, PlusCal and TLC

Experience of so-ware engineers using TLA+, PlusCal and TLC Experience of so-ware engineers using TLA+, PlusCal and TLC Chris Newcombe Principal Engineer, Amazon Web Services 1 Amazon Web Services 30+ services [1] ; compute, storage, db, queuing, High Scale: S3

More information

Simple Loop Patterns and Rich Loop Invariants

Simple Loop Patterns and Rich Loop Invariants Simple Loop Patterns and Rich Loop Invariants Marc Sango AdaCore CNAM 05-10-2011 Marc Sango (AdaCore CNAM) Simple Loop Patterns and Rich Loop Invariants 05-10-2011 1 / 17 Contents 1 Motivation 2 Principle

More information

Recovery System C H A P T E R16. Practice Exercises

Recovery System C H A P T E R16. Practice Exercises C H A P T E R16 Recovery System Practice Exercises 16.1 Explain why log records for transactions on the undo-list must be processed in reverse order, whereas redo is performed in a forward direction. Answer:

More information

Java SE 7 Programming

Java SE 7 Programming Java SE 7 Programming The second of two courses that cover the Java Standard Edition 7 (Java SE 7) Platform, this course covers the core Application Programming Interfaces (API) you will use to design

More information

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM The American Association for Laboratory Accreditation Document Revised: R214: Specific Requirements: Information Technology Testing Laboratory Accreditation July 13, 2010 Program Page 1 of 26 R214 SPECIFIC

More information

Introduction to Logic in Computer Science: Autumn 2006

Introduction to Logic in Computer Science: Autumn 2006 Introduction to Logic in Computer Science: Autumn 2006 Ulle Endriss Institute for Logic, Language and Computation University of Amsterdam Ulle Endriss 1 Plan for Today Now that we have a basic understanding

More information

SQL INJECTION ATTACKS By Zelinski Radu, Technical University of Moldova

SQL INJECTION ATTACKS By Zelinski Radu, Technical University of Moldova SQL INJECTION ATTACKS By Zelinski Radu, Technical University of Moldova Where someone is building a Web application, often he need to use databases to store information, or to manage user accounts. And

More information

Boogie: A Modular Reusable Verifier for Object-Oriented Programs

Boogie: A Modular Reusable Verifier for Object-Oriented Programs Boogie: A Modular Reusable Verifier for Object-Oriented Programs M. Barnett, B.E. Chang, R. DeLine, B. Jacobs, K.R.M. Leino Lorenzo Baesso ETH Zurich Motivation Abstract Domains Modular Architecture Automatic

More information

Recovery Principles in MySQL Cluster 5.1

Recovery Principles in MySQL Cluster 5.1 Recovery Principles in MySQL Cluster 5.1 Mikael Ronström Senior Software Architect MySQL AB 1 Outline of Talk Introduction of MySQL Cluster in version 4.1 and 5.0 Discussion of requirements for MySQL Cluster

More information

https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois

https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois Runtime Verification, Inc. (RV): startup company aimed at bringing the best

More information

Toward Model-Based Verification of Adaptive Allocation Managers

Toward Model-Based Verification of Adaptive Allocation Managers Toward Model-Based Verification of Adaptive Allocation Managers William Leal, Frank Drews, Chang Liu, Lonnie Welch Ohio University { leal@cs.ohiou.edu, drews@ohiou.edu, changliu@cs.ohiou.edu, welch@ohio.edu

More information

Designing Record Access for Enterprise Scale

Designing Record Access for Enterprise Scale Designing Record Access for Enterprise Scale Salesforce, Summer 16 @salesforcedocs Last updated: July 26, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark

More information

Section of DBMS Selection & Evaluation Questionnaire

Section of DBMS Selection & Evaluation Questionnaire Section of DBMS Selection & Evaluation Questionnaire Whitemarsh Information Systems Corporation 2008 Althea Lane Bowie, Maryland 20716 Tele: 301-249-1142 Email: mmgorman@wiscorp.com Web: www.wiscorp.com

More information

ABET General Outcomes. Student Learning Outcomes for BS in Computing

ABET General Outcomes. Student Learning Outcomes for BS in Computing ABET General a. An ability to apply knowledge of computing and mathematics appropriate to the program s student outcomes and to the discipline b. An ability to analyze a problem, and identify and define

More information

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings

Operatin g Systems: Internals and Design Principle s. Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings Operatin g Systems: Internals and Design Principle s Chapter 10 Multiprocessor and Real-Time Scheduling Seventh Edition By William Stallings Operating Systems: Internals and Design Principles Bear in mind,

More information

Applications of formal verification for secure Cloud environments at CEA LIST

Applications of formal verification for secure Cloud environments at CEA LIST Applications of formal verification for secure Cloud environments at CEA LIST Nikolai Kosmatov joint work with A.Blanchard, F.Bobot, M.Lemerre,... SEC2, Lille, June 30 th, 2015 N. Kosmatov (CEA LIST) Formal

More information

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters COSC 6374 Parallel Computation Parallel I/O (I) I/O basics Spring 2008 Concept of a clusters Processor 1 local disks Compute node message passing network administrative network Memory Processor 2 Network

More information

Chapter 19. Activity Diagrams

Chapter 19. Activity Diagrams Use a sequence diagram if you want to emphasize the time ordering of messages. Use a collaboration diagram if you want to emphasize the organization of the objects involved in the interaction. Lay out

More information

Introduction to Parallel and Distributed Databases

Introduction to Parallel and Distributed Databases Advanced Topics in Database Systems Introduction to Parallel and Distributed Databases Computer Science 600.316/600.416 Notes for Lectures 1 and 2 Instructor Randal Burns 1. Distributed databases are the

More information

Interactive Software Verification

Interactive Software Verification Interactive Software Verification Spring Term 2013 Holger Gast gasth@in.tum.de 25.6.2013 1 H.Gast gasth@in.tum.de Interactive Software Verification, 25.6.2013 Today Manipulating lists on the heap Ghost

More information

MPI and Hybrid Programming Models. William Gropp www.cs.illinois.edu/~wgropp

MPI and Hybrid Programming Models. William Gropp www.cs.illinois.edu/~wgropp MPI and Hybrid Programming Models William Gropp www.cs.illinois.edu/~wgropp 2 What is a Hybrid Model? Combination of several parallel programming models in the same program May be mixed in the same source

More information

Lecture Notes on Linear Search

Lecture Notes on Linear Search Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is

More information

Validated Templates for Specification of Complex LTL Formulas

Validated Templates for Specification of Complex LTL Formulas Validated Templates for Specification of Complex LTL Formulas Salamah Salamah Department of Electrical, computer, Software, and Systems Engineering Embry Riddle Aeronautical University 600 S. Clyde Morris

More information

Java Bit Torrent Client

Java Bit Torrent Client Java Bit Torrent Client Hemapani Perera, Eran Chinthaka {hperera, echintha}@cs.indiana.edu Computer Science Department Indiana University Introduction World-wide-web, WWW, is designed to access and download

More information

Know or Go Practical Quest for Reliable Software

Know or Go Practical Quest for Reliable Software Know or Go Practical Quest for Reliable Software Dr.-Ing. Jörg Barrho Dr.-Ing. Ulrich Wünsche AVACS Project meeting 25.09.2014 2014 Rolls-Royce Power Systems AG The information in this document is the

More information

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008 Professional Organization Checklist for the Computer Science Curriculum Updates Association of Computing Machinery Computing Curricula 2008 The curriculum guidelines can be found in Appendix C of the report

More information

Completing the Big Data Ecosystem:

Completing the Big Data Ecosystem: Completing the Big Data Ecosystem: in sqrrl data INC. August 3, 2012 Design Drivers in Analysis of big data is central to our customers requirements, in which the strongest drivers are: Scalability: The

More information

LinuxWorld Conference & Expo Server Farms and XML Web Services

LinuxWorld Conference & Expo Server Farms and XML Web Services LinuxWorld Conference & Expo Server Farms and XML Web Services Jorgen Thelin, CapeConnect Chief Architect PJ Murray, Product Manager Cape Clear Software Objectives What aspects must a developer be aware

More information

Distributed Databases

Distributed Databases Distributed Databases Chapter 1: Introduction Johann Gamper Syllabus Data Independence and Distributed Data Processing Definition of Distributed databases Promises of Distributed Databases Technical Problems

More information

FIPA agent based network distributed control system

FIPA agent based network distributed control system FIPA agent based network distributed control system V.Gyurjyan, D. Abbott, G. Heyes, E. Jastrzembski, C. Timmer, E. Wolin TJNAF, Newport News, VA 23606, USA A control system with the capabilities to combine

More information

logic language, static/dynamic models SAT solvers Verified Software Systems 1 How can we model check of a program or system?

logic language, static/dynamic models SAT solvers Verified Software Systems 1 How can we model check of a program or system? 5. LTL, CTL Last part: Alloy logic language, static/dynamic models SAT solvers Today: Temporal Logic (LTL, CTL) Verified Software Systems 1 Overview How can we model check of a program or system? Modeling

More information

Mechanical Verification of a Garbage Collector

Mechanical Verification of a Garbage Collector Mechanical Verification of a Garbage Collector by Klaus Havelund FMPPTA 99 Talk by Sibylle Aregger Motivation handwritten proofs are error prone show approach to verify algorithm mechanically 2 Contents

More information

Model Checking based Software Verification

Model Checking based Software Verification Model Checking based Software Verification 18.5-2006 Keijo Heljanko Keijo.Heljanko@tkk.fi Department of Computer Science and Engineering Helsinki University of Technology http://www.tcs.tkk.fi/~kepa/ 1/24

More information

TOWARDS AN AUTOMATED HEALING OF 3D URBAN MODELS

TOWARDS AN AUTOMATED HEALING OF 3D URBAN MODELS TOWARDS AN AUTOMATED HEALING OF 3D URBAN MODELS J. Bogdahn a, V. Coors b a University of Strathclyde, Dept. of Electronic and Electrical Engineering, 16 Richmond Street, Glasgow G1 1XQ UK - jurgen.bogdahn@strath.ac.uk

More information

2 nd Semester 2008/2009

2 nd Semester 2008/2009 Chapter 17: System Departamento de Engenharia Informática Instituto Superior Técnico 2 nd Semester 2008/2009 Slides baseados nos slides oficiais do livro Database System c Silberschatz, Korth and Sudarshan.

More information

DIRECT PH.D. (POST B.S.) IN COMPUTER SCIENCE PROGRAM

DIRECT PH.D. (POST B.S.) IN COMPUTER SCIENCE PROGRAM DIRECT PH.D. (POST B.S.) IN COMPUTER SCIENCE PROGRAM OVERVIEW ADMISSION REQUIREMENTS PROGRAM REQUIREMENTS OVERVIEW FOR THE DIRECT PH.D. IN COMPUTER SCIENCE The Direct Ph.D. in Computer Science program

More information

Oracle Database 11 g Performance Tuning. Recipes. Sam R. Alapati Darl Kuhn Bill Padfield. Apress*

Oracle Database 11 g Performance Tuning. Recipes. Sam R. Alapati Darl Kuhn Bill Padfield. Apress* Oracle Database 11 g Performance Tuning Recipes Sam R. Alapati Darl Kuhn Bill Padfield Apress* Contents About the Authors About the Technical Reviewer Acknowledgments xvi xvii xviii Chapter 1: Optimizing

More information

CORBA and object oriented middleware. Introduction

CORBA and object oriented middleware. Introduction CORBA and object oriented middleware Introduction General info Web page http://www.dis.uniroma1.it/~beraldi/elective Exam Project (application), plus oral discussion 3 credits Roadmap Distributed applications

More information

REAL TERRACOTTA. Real-world scalability patterns with Terracotta. SERGIO BOSSA Pro-Netics / Sourcesense

REAL TERRACOTTA. Real-world scalability patterns with Terracotta. SERGIO BOSSA Pro-Netics / Sourcesense REAL TERRACOTTA Real-world scalability patterns with Terracotta SERGIO BOSSA Pro-Netics / Sourcesense About Me Software architect and engineer http://www.pronetics.it http://www.sourcesense.com Blogger

More information

SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I)

SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I) SSC - Concurrency and Multi-threading Java multithreading programming - Synchronisation (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics

More information

Shared Parallel File System

Shared Parallel File System Shared Parallel File System Fangbin Liu fliu@science.uva.nl System and Network Engineering University of Amsterdam Shared Parallel File System Introduction of the project The PVFS2 parallel file system

More information

Trust but Verify: Authorization for Web Services. The University of Vermont

Trust but Verify: Authorization for Web Services. The University of Vermont Trust but Verify: Authorization for Web Services Christian Skalka X. Sean Wang The University of Vermont Trust but Verify (TbV) Reliable, practical authorization for web service invocation. Securing complex

More information

ORACLE INSTANCE ARCHITECTURE

ORACLE INSTANCE ARCHITECTURE ORACLE INSTANCE ARCHITECTURE ORACLE ARCHITECTURE Oracle Database Instance Memory Architecture Process Architecture Application and Networking Architecture 2 INTRODUCTION TO THE ORACLE DATABASE INSTANCE

More information

Software Modeling and Verification

Software Modeling and Verification Software Modeling and Verification Alessandro Aldini DiSBeF - Sezione STI University of Urbino Carlo Bo Italy 3-4 February 2015 Algorithmic verification Correctness problem Is the software/hardware system

More information

The Classes P and NP

The Classes P and NP The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the

More information

Chapter 10: Distributed DBMS Reliability

Chapter 10: Distributed DBMS Reliability Chapter 10: Distributed DBMS Reliability Definitions and Basic Concepts Local Recovery Management In-place update, out-of-place update Distributed Reliability Protocols Two phase commit protocol Three

More information

In Memory Accelerator for MongoDB

In Memory Accelerator for MongoDB In Memory Accelerator for MongoDB Yakov Zhdanov, Director R&D GridGain Systems GridGain: In Memory Computing Leader 5 years in production 100s of customers & users Starts every 10 secs worldwide Over 15,000,000

More information

LEVERAGING DEDUCTIVE VERIFICATION IN INDUSTRIAL CONTEXTS

LEVERAGING DEDUCTIVE VERIFICATION IN INDUSTRIAL CONTEXTS LEVERAGING DEDUCTIVE VERIFICATION IN INDUSTRIAL CONTEXTS CEA S SOFTWARE SAFETY LABORATORY 1995: LEAP FROM DYNAMIC TO STATIC CODE ANALYSIS! CAVEAT: ARCHITECTURE C source code VC Generator Formal specifications

More information