Lock Inference for Systems Software John Regehr Alastair Reid University of Utah March 17, 2003.

Slides:



Advertisements
Similar presentations
Introduction to Embedded Systems Resource Management - III Lecture 19.
Advertisements

Database System Concepts and Architecture
Reliable and Efficient Programming Abstractions for Sensor Networks Nupur Kothari, Ramki Gummadi (USC), Todd Millstein (UCLA) and Ramesh Govindan (USC)
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Interaction Modeling for Testing We would generate the test cases based on our understanding of the interactions that may happen. The source is, again,
Lecture 11: Operating System Services. What is an Operating System? An operating system is an event driven program which acts as an interface between.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Automatic Verification of Component-Based Real-Time CORBA Applications Gabor Madl Sherif Abdelwahed
Eliminating Stack Overflow by Abstract Interpretation John Regehr Alastair Reid Kirk Webb University of Utah.
Static Analysis of Embedded C Code John Regehr University of Utah Joint work with Nathan Cooprider.
Vertically Integrated Analysis and Transformation for Embedded Software John Regehr University of Utah.
1 HOIST: A System for Automatically Deriving Static Analyzers for Embedded Systems John Regehr Alastair Reid School of Computing, University of Utah.
Embedded and Real Time Systems Lecture #4 David Andrews
Dependable computing needs pervasive debugging Tim Harris
© Andy Wellings, 2003 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
February 21, 2008 Center for Hybrid and Embedded Software Systems Mapping A Timed Functional Specification to a Precision.
Real-Time Kernels and Operating Systems. Operating System: Software that coordinates multiple tasks in processor, including peripheral interfacing Types.
Verifying Distributed Real-time Properties of Embedded Systems via Graph Transformations and Model Checking Gabor Madl
1 Organization of Programming Languages-Cheng (Fall 2004) Concurrency u A PROCESS or THREAD:is a potentially-active execution context. Classic von Neumann.
CprE 458/558: Real-Time Systems
Chapter 3 Overview of Operating Systems Copyright © 2008.
OS and the Computer System  Some OS programs exist permanently in the system area of the memory to monitor and control activities in the computer system.
Comparative Operating Systems Fall 2001 An Examination of Embedded Linux as a Real Time Operating System Mark Mahoney.
Evolving Real-Time Systems using Hierarchical Scheduling and Concurrency Analysis John Regehr Alastair Reid Kirk Webb Michael Parker Jay Lepreau School.
Course Instructor: Aisha Azeem
System Design Decomposing the System. Sequence diagram changes UML 2.x specifications tells that Sequence diagrams now support if-conditions, loops and.
[ §6 : 1 ] 6. Basic Methods II Overview 6.1 Models 6.2 Taxonomy 6.3 Finite State Model 6.4 State Transition Model 6.5 Dataflow Model 6.6 User Manual.
Computer Architecture Lecture 01 Fasih ur Rehman.
Timing and Race Condition Verification of Real-time Systems Yann–Hang Lee, Gerald Gannod, and Karam Chatha Dept. of Computer Science and Eng. Arizona State.
Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
Event Driven Programming
Architecting Web Services Unit – II – PART - III.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN.
Scheduling policies for real- time embedded systems.
REAL-TIME SOFTWARE SYSTEMS DEVELOPMENT Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Principles and Pragmatics for Embedded Systems John Regehr University of Utah.
CSCI 444 / CIS 644 Event Driven Programming. Outline I.What is an event driven system? II.What is event driven programming? III.Course Overview.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Computer Science 340 Software Design & Testing Software Architecture.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
U NIVERSITY OF M ASSACHUSETTS A MHERST Department of Computer Science Computer Systems Principles Synchronization Emery Berger and Mark Corner University.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
CSE 153 Design of Operating Systems Winter 2015 Midterm Review.
A Binary Agent Technology for COTS Software Integrity Anant Agarwal Richard Schooler InCert Software.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
A Generative Programming Approach for Adaptive Middleware Venkita Subramonian & Chris Gill Distributed Object Computing Group Washington University, St.
Implementing Mutual Exclusion Andy Wang Operating Systems COP 4610 / CGS 5765.
Real-Time Operating Systems RTOS For Embedded systems.
Preventing Interrupt Overload Presented by Jiyong Park Seoul National University, Korea John Regehr, Usit Duogsaa, School of Computing, University.
 Operating system.  Functions and components of OS.  Types of OS.  Process and a program.  Real time operating system (RTOS).
Architecting Web Services
Architecting Web Services
Hierarchical Architecture
Software Design Methodology
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Coordination Lecture 5.
An Introduction to Software Architecture
Operating Systems : Overview
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Modeling Event-Based Systems in Ptolemy II EE249 Project Status Report
GGF10 Workflow Workshop Summary
Presentation transcript:

Lock Inference for Systems Software John Regehr Alastair Reid University of Utah March 17, 2003

Embedded Systems  Properties:  Important  Resource constrained  Evolve significantly  Contain multiple execution environments

Execution Environments  Sets of  Idioms and abstractions for structuring software  Rules for sequencing actions  Rules for sharing information  Examples  Low-level: Cyclic executive, interrupts, threads, event loop  High-level: Dataflow graph, time triggered system, hierarchical state machines

Diversity in Execution Environments is…  Good:  Diversity can be exploited  To create efficient systems  To match design problems  Bad:  Environments have rules  Interacting environments have rules

Concurrency  Embedded software is fundamentally concurrent  Interrupt driven  Response time requirements  Critical sections are a functional aspect  But choice of lock implementation can be a non-functional aspect

Task Scheduler Logic (TSL)  Formalizes locking concerns across execution environments  Currently unchecked  Finds races and other errors  Generates mapping from each critical section in a system to an appropriate lock  Lock inference

Why Infer Locks?  Locking rules are hard to learn, hard to get right  Sometimes no lock is needed  Components can be agnostic with respect to execution environments  Global side effects can be managed

TSL Concepts  Tasks – units of computation  Asymmetric preemption  A « B means “B may preempt A”  Schedulers  S ◄ B means “S schedules B”  Locks  S  L means “S provides L”  A « L B means “B may preempt A while A holds L”

Resources and Races  Resources  A → L R means “A holds L while accessing R”  Race (A, B, R) = A → L1 R  B → L2 R  A  B  A « L1  L2 B

INT IRQ Event Timer Network E1E2E3 H L

INT IRQ Timer Network Event1 E1 E2 E3 Event2 THREAD H H L L

Applying TSL  Applied to embedded monitoring system with web interface  116 components  1059 functions  5 tasks  2 kinds of locks + null lock

Summary  Contributions  Reasoning about concurrency across execution environments  Automated lock inference  Future work: Optimal lock inference  Minimize run-time overhead  Maximize chances of meeting real- time deadlines

More info and papers here: