Verifying Periodic Programs with Priority Inheritance Locks

Slides:



Advertisements
Similar presentations
Chapter 7 - Resource Access Protocols (Critical Sections) Protocols: No Preemptions During Critical Sections Once a job enters a critical section, it cannot.
Advertisements

Carnegie Mellon University Software Engineering Institute CERT® Knowledgebase Copyright © 1997 Carnegie Mellon University VU#14202 UNIX rlogin with stack.
© 2013 Carnegie Mellon University UFO: From Underapproximations to Overapproximations and Back! Arie Gurfinkel (SEI/CMU) with Aws Albarghouthi and Marsha.
CprE 458/558: Real-Time Systems (G. Manimaran)1 CprE 458/558: Real-Time Systems Resource Access Control Protocols.
© 2011 Carnegie Mellon University SPIN: Part /614 Bug Catching: Automated Program Verification Sagar Chaki April 21, 2014.
© 2011 Carnegie Mellon University SPIN: Part /614 Bug Catching: Automated Program Verification Sagar Chaki April 21, 2014.
© 2011 Carnegie Mellon University System of Systems V&V John B. Goodenough October 19, 2011.
© 2010 Carnegie Mellon University B OXES : A Symbolic Abstract Domain of Boxes Arie Gurfinkel and Sagar Chaki Software Engineering Institute Carnegie Mellon.
© 2013 Carnegie Mellon University Academy for Software Engineering Education and Training, 2013 Session Architect: Tony Cowling Session Chair: Nancy Mead.
© 2013 Carnegie Mellon University Measuring Assurance Case Confidence using Baconian Probabilities Charles B. Weinstock John B. Goodenough Ari Z. Klein.
© Carnegie Mellon University The CERT Insider Threat Center.
© 2011 Carnegie Mellon University Time Bounded Analysis of Real-Time Systems Arie Gurfinkel, Sagar Chaki, and Ofer Strichman Software Engineering Institute.
© 2012 Carnegie Mellon University Compositional Sequentialization of Periodic Programs Sagar Chaki 1, Arie Gurfinkel 1, Soonho Kong 2, Ofer Strichman 3.
© 2012 Carnegie Mellon University UFO: Verification with Interpolants and Abstract Interpretation Arie Gurfinkel and Sagar Chaki Software Engineering Institute.
1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.
© 2015 Carnegie Mellon University Property Directed Polyhedral Abstraction Nikolaj Bjørner and Arie Gurfinkel VMCAI 2015.
© 2013 Carnegie Mellon University Static Analysis of Real-Time Embedded Systems with REK Arie Gurfinkel 1 joint work with Sagar Chaki 1, Ofer Strichman.
© 2011 Carnegie Mellon University Should-Cost: A Use for Parametric Estimates Additional uses for estimation tools Presenters:Bob Ferguson (SEMA) Date:November.
© 2011 Carnegie Mellon University QUELCE: Quantifying Uncertainty in Early Lifecycle Cost Estimation Presenters:Dave Zubrow PhD Bob Ferguson (SEMA) Date:November.
UCDavis, ecs251 Fall /23/2007ecs251, fall Operating System Models ecs251 Fall 2007 : Operating System Models #3: Priority Inversion Dr. S.
Ipek Ozkaya, COCOMO Forum © 2012 Carnegie Mellon University Affordability and the Value of Architecting Ipek Ozkaya Research, Technology.
© 2013 Carnegie Mellon University Verifying Periodic Programs with Priority Inheritance Locks Sagar Chaki 1, Arie Gurfinkel 1, Ofer Strichman 2 FMCAD,
Conditions and Terms of Use
Author Software Engineering Institute
© 2015 Carnegie Mellon University Parametric Symbolic Reachability Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Arie.
CSE 153 Design of Operating Systems Winter 2015 Midterm Review.
© 2015 Carnegie Mellon University COCOMO 2015 November 17, 2015 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Causal.
CGS 3763 Operating Systems Concepts Spring 2013 Dan C. Marinescu Office: HEC 304 Office hours: M-Wd 11: :30 AM.
Undergraduate course on Real-time Systems Linköping University TDDD07 Real-time Systems Lecture 2: Scheduling II Simin Nadjm-Tehrani Real-time Systems.
RTAS 2014 Bounding Memory Interference Delay in COTS-based Multi-Core Systems Hyoseung Kim Dionisio de Niz Bj ӧ rn Andersson Mark Klein Onur Mutlu Raj.
1 CERT BFF: From Start To PoC June 09, 2016 © 2016 Carnegie Mellon University This material has been approved for public release and unlimited distribution.
Deadlock. Examples You can't get a job without experience; you can't get experience without a job. A set of blocked processes each holding a resource.
Adding Concurrency to a Programming Language Peter A. Buhr and Glen Ditchfield USENIX C++ Technical Conference, Portland, Oregon, U. S. A., August 1992.
Process Management Deadlocks.
Synchronization Deadlocks and prevention
Secure Software Workforce Development Panel Session
David Svoboda & Aaron Ballman
Models for Resources and Management
Author Software Engineering Institute
Temporal Protection in Real-Time Systems
CSE 120 Principles of Operating
EMERALDS Landon Cox March 22, 2017.
Michael Spiegel, Esq Timothy Shimeall, Ph.D.
Scheduling and Resource Access Protocols: Basic Aspects
Albert M. K. Cheng Embedded Real-Time Systems
Applied Operating System Concepts -
Unit OS9: Real-Time and Embedded Systems
EEE 6494 Embedded Systems Design
Concurrency Control.
Metrics-Focused Analysis of Network Flow Data
Chapter 7: Deadlocks.
Concurrency Specification
CS 143A – Winter 2013 Quiz 2 Solutions.
Rate Monotonic Analysis For Real-Time Scheduling A presentation for
COT 5611 Operating Systems Design Principles Spring 2014
QUELCE: Quantifying Uncertainty in Early Lifecycle Cost Estimation
Chapter 15 : Concurrency Control
Deadlock B.Ramamurthy CSE421 1/11/2019 B.Ramamurthy.
Chapter 7: Deadlocks.
Lecture 2 Part 2 Process Synchronization
Dynamic Cyber Training with Moodle
Deadlock B.Ramamurthy CSE421 2/23/2019 B.Ramamurthy.
Chapter 7: Deadlocks.
Deadlock B.Ramamurthy CSE421 4/23/2019 B.Ramamurthy.
Deadlock B.Ramamurthy CSE421 5/1/2019 B.Ramamurthy.
CONCURRENCY Concurrency is the tendency for different tasks to happen at the same time in a system ( mostly interacting with each other ) .   Parallel.
CSE 153 Design of Operating Systems Winter 2019
Deadlock B.Ramamurthy CSE421 8/28/2019 B.Ramamurthy.
Deadlock B.Ramamurthy CSE421 9/3/2019 B.Ramamurthy.
Distributed Dynamic Channel Allocation in Wireless Network
Presentation transcript:

Verifying Periodic Programs with Priority Inheritance Locks Sagar Chaki1, Arie Gurfinkel1, Ofer Strichman2 FMCAD, October 22, 2013 1Software Engineering Institute, CMU 2Technion, Israel Institute of Technology

Linda Northrop Software Product Lines 4/8/2019 Copyright 2013 Carnegie Mellon University This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the United States Department of Defense. NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHEDON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. This material has been approved for public release and unlimited distribution except as restricted below. This material may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at permission@sei.cmu.edu. DM-0000695

Periodic Embedded Real-Time Software Avionics Mission System* Rate Monotonic Scheduling (RMS) Task Period weapon release 10ms radar tracking 40ms target tracking aircraft flight data 50ms display steering 80ms Domains: Avionics, Automotive OS: OSEK, VxWorks, RTEMS We call them periodic programs *Locke, Vogel, Lucas, and Goodenough. “Generic Avionics Software Specification”. SEI/CMU Technical Report CMU/SEI-90-TR-8-ESD-TR-90-209, December, 1990

Context: Time-Bounded Verification [FMCAD’11, VMCAI’13] Periodic Program Collection of periodic tasks Execute concurrently with preemptive priority-based scheduling Priorities respect RMS Communicate through shared memory Time-Bounded Verification Assertion A violated within X ms of a system’s execution from initial state I? A, X , I are user specified Time bounds map naturally to program’s functionality (e.g., air bags) Locks CPU-locks, priority ceiling protocol locks [FMCAD’11, VMCAI’13] priority inheritance protocol locks PIP locks cause blocking and deadlocks Main focus of this paper

Periodic Program (PP) An N-task periodic program PP is a set of tasks {1, …, N} A task  is a tuple I, T, P, C, A, where I is a task identifier = its priority T is a task body (i.e., code) P is a period C is the worst-case execution time A is the release time: the time at which task becomes first enabled Semantics of PP bounded by time X is given by an asynchronous concurrent program: ki = 0; while (ki < Ji && Wait(i, ki)) Ti (); ki = ki + 1;   parallel execution w/ priorities  

Priority Inheritance Protocol (PIP) Ensure mutual exclusion when accessing shared resources Works by dynamically raising and lowering thread priorities Lock: If lock, is available, grab it. Otherwise, block; the thread holding the lock “inherits” my priority Unlock: Release lock. Return to normal priority. Provably avoids the priority inversion problem High-priority task is blocked on a lock held by low-priority task However, incorrect usage leads to deadlocks In contrast to priority ceiling locks and CPU locks [FMCAD’11, VMCAI’13]

Our Contributions Time-bounded verification of reachability properties of PP with PIP locks Based on sequentialization [LR08], but supports PIP locks Challenge: # sequentialization rounds needed for completeness cannot be statically determined Insight: whether more rounds needed can be statically determined Solution: Iterative-deepening search with fixed point check Deadlock detection in PPs with PIP locks Builds dynamically the Task-Resource Graph Aborts if a cycle in that graph is detected Implementation and Empirical Evaluation

Example: A Periodic Program   Example: A Periodic Program 1 2 3 4 5 6 7 8 9 10     2 Priority Level     1     Task Prio (I1) WCET (Ci) Period (Pi) Arrival Time (Ai) 2 2 10 1 1 4 20 0 3 40

  Example: One Schedule 1 2 3 4 5 6 7 8 9 10           2   Priority Level     1                      

Example: Viewing as a Round-Based Schedule 1 2 3 4 5 6 7 8 9 10           2 Priority Level     1      

Example: Viewing as a Round-Based Schedule 1 2 3 4 1 2 3 4 5 6 7 8 9 10           2 Priority Level     1      

Sequentialization With PIP locks and fixed #Rounds 1 2 3 4 1 2 3 4 5 6 7 8 9 10           2 Priority Level     1     =   =   =   =    

Complete Algorithm: Iteratively Increase #Rounds 1 2 3 4 1 2 3 4 5 6 7 8 9 10           2 Priority Level     1     Challenge: Different schedules have different number of rounds #Rounds = #Jobs + #Blocks #Blocks depends on the execution and preemption Solution: Start with a small number of rounds (equal to #Jobs) Add more rounds iteratively till counterexample found, or fixed-point reached

Aborts if a job blocks but all R rounds already allocated Overall Algorithm Aborts if a job blocks but all R rounds already allocated

Deadlock Detection: Encoding TRG Ownership Edge 1 2 3 4 5 6 7 8 9 10 Blocking Edge       2 Priority Level   1                     TRG: Node = task/lock; Edge = blocking/ownership; Cycle = deadlock Transitive closure of TRG maintained and updated dynamically Program aborts if TRG becomes cyclic (i.e., transitive closure has self-loop)

Deadlock Detection: Encoding TRG Ownership Edge 1 2 3 4 5 6 7 8 9 10 Blocking Edge         2 Priority Level   1                       TRG: Node = task/lock; Edge = blocking/ownership; Cycle = deadlock Transitive closure of TRG maintained and updated dynamically Program aborts if TRG becomes cyclic (i.e., transitive closure has self-loop)

Deadlock Detection: Encoding TRG Ownership Edge 1 2 3 4 5 6 7 8 9 10 Blocking Edge           2 Priority Level   1                         TRG: Node = task/lock; Edge = blocking/ownership; Cycle = deadlock Transitive closure of TRG maintained and updated dynamically Program aborts if TRG becomes cyclic (i.e., transitive closure has self-loop)

Deadlock Detection: Encoding TRG Ownership Edge 1 2 3 4 5 6 7 8 9 10 Blocking Edge           2 Priority Level     1                           TRG: Node = task/lock; Edge = blocking/ownership; Cycle = deadlock Transitive closure of TRG maintained and updated dynamically Program aborts if TRG becomes cyclic (i.e., transitive closure has self-loop)

Deadlock Detection: Encoding TRG Ownership Edge 1 2 3 4 5 6 7 8 9 10 Blocking Edge           2 Priority Level     1                             TRG: Node = task/lock; Edge = blocking/ownership; Cycle = deadlock Transitive closure of TRG maintained and updated dynamically Program aborts if TRG becomes cyclic (i.e., transitive closure has self-loop)

Deadlock Detection: Encoding TRG Ownership Edge 1 2 3 4 5 6 7 8 9 10 Blocking Edge           2 Priority Level     1                               TRG: Node = task/lock; Edge = blocking/ownership; Cycle = deadlock Transitive closure of TRG maintained and updated dynamically Program aborts if TRG becomes cyclic (i.e., transitive closure has self-loop)

NXTway-GS: a 2 wheeled self-balancing robot Original: nxt (2 tasks) balancer (4ms) Keeps the robot upright and responds to BT commands obstacle (50ms) monitors sonar sensor for obstacle and communicates with balancer to back up the robot Ours: aso (3 tasks) balancer as above but no BT obstacle as above bluetooth (100ms) responds to BT commands and communicates with the balancer Verified consistency of communication between tasks

Experimental Results

Related, Ongoing and Future Work Related Work Sequentialization of Periodic Programs with CPU locks and priority ceiling protocol locks (FMCAD’11, VMCAI’13) Sequentialization of Concurrent Programs (Lal & Reps ‘08, and others) Sequentialization of Periodic Programs (Kidd, Jagannathan, Vitek ’10) Verification of periodic programs using SPIN (Florian, Gamble, & Holzmann ‘12) Verification of Time Properties of (Models of) Real Time Embedded Systems Model Checking Real-Time Java using JPF (Lindstrom, Mehlitz, and Visser ‘05) Ongoing and Future Work Verification without the time bound Memory Consistency based Sequentialization Abstraction / Refinement Modeling physical aspects (i.e., environment) more faithfully More Examples

Linda Northrop Software Product Lines 4/8/2019 Contact Information Presenter Sagar Chaki SSD Telephone: +1 412-268-5800 Email: chaki@sei.cmu.edu U.S. mail: Software Engineering Institute Customer Relations 4500 Fifth Avenue Pittsburgh, PA 15213-2612 USA Web: www.sei.cmu.edu http://www.sei.cmu.edu/contact.cfm Email: info@sei.cmu.edu Telephone: +1 412-268-5800 SEI Phone: +1 412-268-5800 SEI Fax: +1 412-268-6257

QUESTIONS?