CSE 812. Outline Defining Programs, specifications, faults, etc. Safety and Liveness based on the work of Alpern and Schneider Defining fault-tolerance.

Slides:



Advertisements
Similar presentations
Mutual Exclusion – SW & HW By Oded Regev. Outline: Short review on the Bakery algorithm Short review on the Bakery algorithm Black & White Algorithm Black.
Advertisements

CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Consensus Steve Ko Computer Sciences and Engineering University at Buffalo.
Snap-stabilizing Committee Coordination Borzoo Bonakdarpour Stephane Devismes Franck Petit IEEE International Parallel and Distributed Processing Symposium.
Chapter 15 Basic Asynchronous Network Algorithms
Concurrent Programming Problems OS Spring Concurrency pros and cons Concurrency is good for users –One of the reasons for multiprogramming Working.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 5: Process Synchronization.
Process Synchronization. Module 6: Process Synchronization Background The Critical-Section Problem Peterson’s Solution Synchronization Hardware Semaphores.
China’s Software Industry August 2006 Instructor: Hengming Zou, Ph.D.
Self-Stabilization in Distributed Systems Barath Raghavan Vikas Motwani Debashis Panigrahi.
Choose the right picture
Introduction to Self-Stabilization Stéphane Devismes.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Markov Analysis Chapter 15
CS 582 / CMPE 481 Distributed Systems
Distributed systems Module 2 -Distributed algorithms Teaching unit 1 – Basic techniques Ernesto Damiani University of Bozen Lesson 3 – Distributed Systems.
An Introduction to Input/Output Automata Qihua Wang.
CS294, YelickSelf Stabilizing, p1 CS Self-Stabilizing Systems
CS294, YelickConsensus, p1 CS Consensus
Review of the automata-theoretic approach to model-checking.
CS510 Concurrent Systems Class 5 Threads Cannot Be Implemented As a Library.
7: Deadlocks1 DEADLOCKS EXAMPLES: "It takes money to make money". You can't get a job without experience; you can't get experience without a job. BACKGROUND:
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
1 DISTRIBUTION A. Approved for public release; Distribution unlimited. (Approval AFRL PA # 88ABW , 09 April 2014) Reducing the Wrapping Effect.
1 Lecture 9: Synchronization  concurrency examples and the need for synchronization  definition of mutual exclusion (MX)  programming solutions for.
UPPAAL Ghaith Haddad. Introduction UPPAAL is a tool for modeling, validation and verification of real-time systems. Appropriate for systems that can be.
Selected topics in distributed computing Shmuel Zaks
CMPS 3223 Theory of Computation
CSI 3125, Axiomatic Semantics, page 1 Axiomatic semantics The assignment statement Statement composition The "if-then-else" statement The "while" statement.
CSE 812. Outline What is a distributed system/program? Program Models Program transformation.
Defining Programs, Specifications, fault-tolerance, etc.
6.852: Distributed Algorithms Spring, 2008 Class 13.
CSCI 2670 Introduction to Theory of Computing August 26, 2004.
CSCI 2670 Introduction to Theory of Computing August 25, 2005.
1 Boundary Value Testing Chapter 5. 2 Introduction Input domain testing is the most commonly taught (and perhaps the most commonly used) software testing.
Software Verification 2 Automated Verification Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität and Fraunhofer Institut für.
Time, Clocks, and the Ordering of Events in a Distributed System Leslie Lamport Massachusetts Computer Associates,Inc. Presented by Xiaofeng Xiao.
Defining Liveness by Bowen Alpern and Fred B. Schneider Presented by Joe Melnyk.
CIS 842: Specification and Verification of Reactive Systems Lecture INTRO-Examples: Simple BIR-Lite Examples Copyright 2004, Matt Dwyer, John Hatcliff,
Operating Systems CMPSC 473 Mutual Exclusion Lecture 11: October 5, 2010 Instructor: Bhuvan Urgaonkar.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
CS 542: Topics in Distributed Systems Self-Stabilization.
1 OPERATING SYSTEMS DEADLOCKS created by:-gaurav shrivastava contact:- om.
Model Checking Lecture 1. Model checking, narrowly interpreted: Decision procedures for checking if a given Kripke structure is a model for a given formula.
Program Correctness. The designer of a distributed system has the responsibility of certifying the correctness of the system before users start using.
ITEC452 Distributed Computing Lecture 15 Self-stabilization Hwajung Lee.
Introduction to distributed systems description relation to practice variables and communication primitives instructions states, actions and programs synchrony.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Choose the right picture Choose the right word. 5.
Synchronization Questions answered in this lecture: Why is synchronization necessary? What are race conditions, critical sections, and atomic operations?
It’s always important that all of your nodes be numbered. So the way to do that is to go to Options at the top of the screen then select Preferences. When.
Fundamentals of Fault-Tolerant Distributed Computing In Asynchronous Environments Paper by Felix C. Gartner Graeme Coakley COEN 317 November 23, 2003.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
OPERATING SYSTEM CONCEPTS AND PRACTISE
Pictures and cars.
Modeling Mutual Exclusion Algorithms
OPERATING SYSTEMS DEADLOCKS
Atomicity, Non-determinism, Fairness
Axiomatic semantics Points to discuss: The assignment statement
MSIS 655 Advanced Business Applications Programming
Nondeterministic Finite Automata
D1 Discrete Mathematics
Abstraction.
OPERATING SYSTEMS DEADLOCKS.
IT3002 Computer Architecture
OPERATING SYSTEMS DEADLOCKS.
DEADLOCKS.
Predictability Verification with Petri Net Unfoldings
Don Porter Portions courtesy Emmett Witchel
Presentation transcript:

CSE 812

Outline Defining Programs, specifications, faults, etc. Safety and Liveness based on the work of Alpern and Schneider Defining fault-tolerance

Defining Programs Goal of this discussion is to extend the concept of programs from programs such as that in C/C++/… to more abstract programs Consider the map of MSU shown on the next page. A robot needs to be programmed so that it can go from point A to point B –Identify a program for such robot

A B

A B

Issues Non determinism –At a certain state, the program is presented from a set of multiple options. –Assumption: the program may choose either of these options non-deterministically. Note that this does not imply any fairness unless assumed otherwise.

Abstraction Thinking of the program as a finite automata

Defining Safety Example: –Consider the arrows in previous picture Intuitively, safety identifies transitions that should not be executed by the program

Defining faults Transient faults Permanent faults –Need for extra variables for modeling

Assumption about Faults At any state, either program transition executes or a fault transition executes Finite occurrence of faults in any computation

Example 2 Peterson’s mutual exclusion algorithm –Two processes State can be n (non critical), t (trying), or c (critical) It is necessary to ensure that both processes are not in state c simultaneously If a process is in state t, then it must eventually go to state c When a process in state n (respectively, t, c) changes its state, it must change it to t (respectively, c, n) –Additional variable turn

Automata for Peterson’s Mutual Exclusion

Example 3 Car climate control –Driver side temperature –Passenger side temperature –Controls for increasing and decreasing temperature –A button for `Sync’ –Minimum and maximum temperature

Automata for Car Climate Control

Use of Invariants

Designing Programs Given an Invariant