Modeling and Analyzing Concurrent Systems. Robert B. France

Size: px
Start display at page:

Download "Modeling and Analyzing Concurrent Systems. Robert B. France"

Transcription

1 Modeling and Analyzing Concurrent Systems Robert B. France

2 Overview Why model and analyze concurrent systems? How are concurrent systems modeled? How are concurrent systems analyzed?

3 References Principles of Model Checking Christel Baier and Joost- Pieter Katoen, MIT Press Some of the slides use diagrams and text extracted from the above book

4 Overview Why model and analyze concurrent systems? How are concurrent systems modeled? How are concurrent systems analyzed?

5 Why model concurrent systems? Distributed, concurrent systems are becoming commonplace, but they are notoriously difficult to develop network applicaoons, data communicaoon protocols, mulothreaded code, client- server applicaoons Concurrency- specific errors: deadlock, livelock A deadlock occurs when the system cannot has reached a state in which no work is done but at least one process in the system needs to complete its tasks A livelock occurs when the processes in a system are stuck in a repeoove task and make no progress towards their funcoonal goals. These types of behavioral errors can be mechanically detected if the systems are properly modeled and analyzed

6 Common flaws in concurrent systems UnderspecificaOon: Model is incomplete, imprecise or allows behavior that should not be allowed (i.e., model is too permissive). OverspecificaOon: Model disallows behavior that should be allowed, that is, model is to restricove ViolaOons of safety properoes: A safety property is a property that must not be violated nothing bad should happen ; a bad behavior should never occurs An invariant is an example of a safety property Example 1: Mutual exclusion property at most one process is in its criocal secoon at any given Ome Example 2: Absence of deadlocks: ViolaOons of liveness properoes: Set of properoes that a system must saosfy, i.e., properoes that require desired events eventually occur something good eventually happens Example 1: StarvaOon freedom (e.g., each process waiong to enter its criocal secoon will eventually enter its criocal secoon. Example 2: Progress: A process will eventually perform a non- skip step

7 What is Model Checking? Model checking is an automated technique that, given a finite- state model of a system and a logical property, systemaocally checks whether this property holds for (a given inioal state in) that model. [Clarke & Emerson 1981]: Model checking tools automaocally verify whether M =φ, holds, where M is a (finite- state) model of a system and property φ (phi) characterizes a set of allowed behaviors. M has behavior that is allowed by φ Check that M is a model of φ

8 Model Checking process 1. Construct a model of the system (M) 2. Formalize the properoes that will be evaluated in the model (P) 3. Use a model checker to determine if M saosfies P. Three results are possible: 1. The model M saosfies the property P, i.e. M = P 2. M does not saosfy P; in this case a counterexample is produced 3. No conclusive result is produced by the model checker (model checker ran out of space or Ome)

9 What is meant by model in model checker? The term model as used in model checker is an assignment of values to variables in a logical formula that makes the formula true. AlternaOvely, a formula defines a family of models or instances (where an instance saosfies the formula) For example, a model of a proposioon is an assignment of truth values to the proposioon variables that makes the proposioon true (e.g., a line in a truth table is a model) A model checker checks whether a system model, M, is an instance of the property, φ That is, it checks if the system model is an assignment of values to variables in the property that makes the property true.

10 Is the Alloy Analyzer a Model Checker? No! It is a Model Finder The Analyzer generates an instance that saosfies the constraints in signatures, facts and the condioon in the predicates or asseroons.

11 Overview Why model and analyze concurrent systems? How are concurrent systems modeled? How are concurrent systems analyzed?

12 How can we describe a system so that it can be mechanically model- checked? First we focus on linear temporal behavioral properoes Linear model of Ome; no branching in the Omeline over which behaviors are observed Behaviors expressed in terms of TransiOon Systems that describe the effect of operaoons on the system s state. A linear temporal (LT) property characterizes a set of state transioons A model saosfies a linear temporal property if the state transioons it defines are all included in the transioons characterized by the LT property.

13 TransiOon systems

14 Using TransiOon Systems to model system behavior A Transi7on System (TS) is a directed graph where nodes represent states and edges represent transioons between states A state describes informaoon about a system at a parocular point in Ome (cf. state in Alloy) E.g., the state of a traffic light indicates the color of the light that is illuminated at a point in Ome A transi7on describes the condioons under which a system moves from one state to another.

15 A (toy) example of a simple TS Transitions are associated with action labels that indicate the actions that cause the transition. insert_coin is a user action get_soda, get_beer are actions performed by the machine τ denotes an activity that is not of interest to the modeler (e.g., it represents an internal activity of the vending machine)

16 Transi7on System (TS): Formal Defini7on A transi7on system TS is a tuple (S, Act,, I,AP, L) where S is a set of states, Act is a set of acoons, - > S Act S is a transioon relaoon (the first element in the triplet is the source state, the second element is an acoon and the third element is the target state of the transioon) I S is a set of inioal states, AP is a set of atomic proposioons, and L : S 2 AP is a labeling funcoon (2 AP is the power set of AP) TS is called finite if S, Act, and AP are finite. (s, act, s ) in - > is wrimen as s - a - > s L(s) are the atomic proposioons in AP that are saosfied in state s. Given a formula, f,, a state s saosfies f (i.e., is a model of f) if and only if f can be derived from the atomic proposioons associated with state s via the labeling funcoon L, that is: s = f iff L(s) = f

17 Toy example again S = {pay, select, soda, beer} I = {pay} Act = {insert_coin, get_soda, get_beer, T} - > = {(pay, insert_coin, select), (beer, get_beer, pay), (soda, get_soda, ay), (select, τ, soda), (select, τ, beer)}

18 Atomic proposi7ons in the toy Example The atomic proposioons in a transioon system are chosen based on the properoes the modeler wants to check. Example property to verify: The vending machine only delivers a drink arer the user pays (inserts a coin). Relevant atomic proposioons: AP = {paid, delivered} Appropriate Labeling funcoon: L(pay) = empty set L(soda)=L(beer)={paid, delivered} L(select)={paid}

19 Using non- determinism to under- specify a problem The toy model is non- determinisoc: When the system enters the select state, the transioon system non- determinisocally chooses to dispense beer or soda (i.e., it makes a choice that cannot be determined beforehand by examining the model). In this case the model deliberately abstracts over the mechanism a vending machine customer uses to select soda or beer In other words, the modeler is leaving open the choice of how this is done; someone implemenong the model needs to resolve this non- determinism to make the system determinisoc Non- determinisoc choice is also used to model concurrent (parallel) behavior as we will see later.

20 AcOon- DeterminisOc TS Post(s,act) are all the target states associated with s via transioons labeled with act; i.e., Post(s,act) = {s : State s act - > s } TS = (S, Act, - >, I, AP, L) is acoon- determinisoc if #(I) <= 1 (# returns the number of elements in its set argument) For all states s in S and acoons act in Act, #(Post (s,act)) <= 1, where

21 AP- DeterminisOc TS Post(s) consists of all the target states associated with s via transioons; i.e., Post(s) = U act in Act Post(s,act) TS = (S, Act, - >, I, AP, L) is AP- determinisoc if #(I) <= 1 For all states s in S, and A in 2 AP, #(Post(s) intersect {s :State L(s ) = A}) <= 1

22 Observable behavior Oren useful to have behavior that is observable by external agents be determinisoc Two observable views AcOon- based view: only the acoons are observable State- based view: only the states, via the proposioons associated with them, are observable The two nooons of determinisoc behavior discussed in the previous slides support these views.

23 ExecuOons of a TS TS ExecuOons formalize the nooon of behavior in a modeled system A finite execu7on fragment of a TS is a sequence of state transioons. For example, s0- act1- >s1, s1- act2- >s3, is wrimen as an alternaong sequence of states and acoons that ends in a state, s0,act1,s1,act2,s3 An infinite execu7on fragment is an infinite sequence of transioons A maximal execu7on fragment is either a finite execuoon fragment that ends in a final state, or an infinite execuoon fragment. An execuoon fragment is called inioal if it starts in an inioal state. An execuoon of a transioon system is an inioal maximal execuoon fragment

24 ExecuOons of the vending machine Reachability of states: A state in a transition system is reachable if there is an initial finite execution fragment that ends in s.

25 Modeling concurrent systems that manipulate data In sorware the transioon from one state to another oren depends on condioons expressed in terms of data Condi7onal transi7ons are higher- level constructs used to describe acoons that are performed only under certain condioons Models with condioonal transioons are called program graphs Program graphs are higher- level in that they can be transformed into TSs (Note: TSs do not have condi7onal transi7ons) via a process called unfolding

26 Extended vending machine example Vending machine extended to: to maintain informaoon on number of beers and soda in machine nsoda: variable that stores number of soda in vending machine at a parocular Ome nbeer: variable that stores number of beer in vending machine at a parocular Ome return coins entered by user if product is not available ret_coin: represents the return coin acoon

27 Program graph of the extended vending machine select and start are called loca7ons nsoda, and nbeer are variables coin, refill, sget, bget, ret_coin are ac7ons

28 A simple text representaoon of the vending machine PG start: coin; go to select refill{nsoda := max; nbeer := max}; go to start select: nsoda > 0:: sget{nsoda := nsoda - 1}; go to start nbeer > 0:: bget{nbeer := nbeer- 1}; go to start nsoda = 0 and nbeer = 0:: ret_coin; go to start

29 Unfolding the vending machine PG bget sget

30 Program Graphs A program graph over a set of typed variables, Var, consists of nodes represenong locaoons and edges represenong condioonal transioons In the vending machine example Var = {nsoda, nbeer} A program graph also defines effects of acoons on the variables An effect is a funcoon that takes an acoon and an assignment of values to variables and returns a new assignment of values to variables (the new assignment is the effect of the acoon)

31 Program Graph (PG): Formal Defini7on A program graph PG over set Var of typed variables is a tuple (Loc, Act, Effect,- >, Loc0, g0) where Loc is a set of locaoons and Act is a set of acoons, Effect : Act Eval(Var) - - > Eval(Var) is the effect funcoon, Eval(Var) is the set of assignments of values to variables in Var, e.g.,{ <nbeer:= 10, nsoda:=20>, <nbeer:= 1, nsoda:=20>, <nbeer:=0, nsoda:=4>, } is the set of assignments when Var = {nbeer, nsoda} - > Loc Cond(Var) Act Loc is the condioonal transioon relaoon, Cond(Var) is the set of all Boolean condioons (proposioons) over Var Loc 0 Loc is a set of inioal locaoons, g 0 Cond(Var) is the inioal condioon.

32 Vending machine program graph Loc={start, select} Var={nsoda, nbeer} Act={bget, sget, coin, ret_coin, refill} Effect(coin, η) = η Effect(ret_coin, η) = η Effect(sget, η) = η [nsoda = nsoda - 1] Effect(bget, η) = η [nbeer = nbeer - 1] Effect(refill, η) = η [nsoda =max, nbeer =max] In the above η is an assignment of values to variables in Var η[v =f(v)] means that the new assignment to variable v is a function, f, of the previous assignment of v and all other variable assignments are unchanged Loc0 = start g0 = nsoda = max and nbeer = max

33 TS semanocs of program graphs The TS is produced by unfolding the program graph You can think of unfolding as a representaoon of the execuoon of a program described by a PG A state consists of a locaoon (a point in the program) and an assignment of values to variables: <l,η> An inioal state consists of an inioal locaoon and an assignment that saosfies the condioon g 0 defined in the PG <l 0,η> is an inioal state if l 0 is an inioal locaoon and η = g 0 The proposioons consists of the locaoons together with Cond(Var) The proposioon loc is true in any state of the form <loc, η>, and false otherwise

34 Transi7on System Seman7cs of a Program Graph

35 Structured OperaOonal SemanOcs The semanocs defined previously is an example of SOS The semanocs uses inference rules of the form

36 Using transioon systems to model concurrent behavior

37 Concurrent systems A concurrent (parallel) system consists of mulople processes execuong concurrently (in parallel). If a concurrent system consists of n processes, in which each process, proc i, is modeled by a transioon system TS i, the concurrent system can be modeled by a transioon system TS = TS 1 TS 2 Ts n where is a parallel composioon operator

38 Types of parallel composioon operators Interleaving AcOons of concurrent processes are interleaved in a non- determinisoc manner Used to model processes whose behaviors are completely independent (asynchronous system of processes) Communica7on via shared variables A process can influence the behavior of another process by changing the value of a variable that is shared with the process Handshaking Two processes that want to interact must synchronize their acoons such that they take part in the interacoon at the same Ome Channel systems In a channel system processes interact by reading from and wriong to channels connecong them

39 Interleaving

40 Interleaving of processes When processes can execute in a completely independent manner (with no interacoons) one can view the system of processes as one system consisong of the acoons of each process merged (interleaved) in an arbitrary manner In this system concurrency means that the order in which the acoons are performed does not affect the final result; i.e., P1.act1;P2.act2 produces the same result as P2.act2;P1.act1, where Pi.ac7 is an acoon performed by process Pi (i=1 or i =2) The interleaving view is an abstracoon in which only one processor is assumed available to execute the processes

41 Interleaving of Traffic Light Transi7on Systems Consider a system with two traffic lights, each modeled by a transition system Interleaving operator: Interleaved System

42 Effect of an interleaving operator The above states that the order in which the actions α, β are performed does not matter. is the interleaving operator ; is sequential composition + represents non-deterministic choice

43 Effect of an interleaving operator: An example Note that variables are not shared across processes

44 Formal definioon of interleaving operator

45 CommunicaOon via Shared Variables

46 Modeling non- asynchronous systems Interleaving operator requires that processes are completely independent What happens if processes access data that is globally accessible (global data)? See example on next slide

47 Interleaving in the presence of shared variables Consider the program graph describing 2 actions from 2 processes, PG1, PG2, that access a global variable x (locations are omitted to simplify the presentations) α: x := 2 * x β: x := x + 1 (α β) = (x := 2 * x x := y + 1) TS(PG1) TS(PG2) TS(PG1) TS(PG2)

48 Modeling processes that access global variables An interleaving operator,, on program graphs (rather than transioon systems) is used PG1 PG2 TS(PG1 PG2) describes a TS that treats shared variables appropriately In general, TS(PG1 PG2) TS(PG1) TS(PG2)

49 Interleaving of Program Graphs

50 Interleaving of Two Example Program Graphs location conditional transition with assignment action Interleaved PG Transition system for interleaved PG

51 Non- determinism Non- determinism in a state of a TS produced by a interleaved PG can be interpreted in 3 ways: 1. As an internal non- determinisoc choice made in the PG 2. As an interleaving of acoons that access variables that are not shared (referred to as non- cri7cal ac7ons) 3. As the resoluoon of a contenoon between acoons of PG1 and PG2 that access global variables (referred to as cri7cal ac7ons)

52 Accessing global variables CriOcal acoons are those that access global variables Access to global variables needs to be controlled Only one criocal acoon can access a global variable at any Ome How do we ensure this? The mutual exclusion problem

53 Mutual exclusion using semaphores Two processes with criocal acoons use a shared variable, y, called a semaphore to determine when they can perform their criocal acoons, i.e., enter their criocal secoons. y = 0 indicates that one process is execuong its criocal acoons (i.e., is in its criocal secoon), and thus the other cannot execute its criocal acoons; The process that is execuong its criocal secoon in essence locks access to the global variables. y = 1 indicates that none of the processes are in their criocal secoons (access to the global variables is unlocked)

54 CriOcal vs. non- criocal secoons

55 Program graphs for semaphore- based mutual exclusion

56 Reachable states

57 TS(PG1 PG2)

58 Peterson s mutual exclusion algorithm In the semaphore approach the choice of which process enters its criocal secoon is made non- determinisocally That is, it is up to the implementer of the model to determine how the next process to enter its criocal secoon is determined Peterson s algorithm makes an explicit choice Uses variables b 1, b 2, and x b 1 :Boolean - true if P1 is waiong to enter its criocal secoon or is in its criocal secoon (i.e., b 1 = wait 1 or crit 1 ) b 2 :Boolean - true if P2 is waiong to enter its criocal secoon x:{1,2} - if x = 1 then P1 can enter its criocal secoon; else (x = 2) P2 can enter its criocal secoon

59

60 TransiOon System

61 Atomicity The assignment group (b i :=true; x:=i), where i = 1 or 2, are atomic, i.e., together they are treated as a single acoon; the individual assignments cannot be interleaved with other acoons This is not essenoal for Petersen s algorithm to work Mutual exclusion can also be ensured when the processes perform these acoons in the given order Mutual exclusion is NOT guaranteed if the operaoons are performed in reverse order, i.e., (x:=i,; b i :=true)

62 Example of violaoon of mutual exclusion

63 Handshaking

64 Synchronous interacoons Processes can also interact through a set of synchronizing acoons, H, called handshake ac7ons Processes interact only if they all can perform the same handshake acoon at the same Ome i.e., the models must shake hands for the interacoon to take place These acoons may involve the transfer of data This transfer will be ignored in the models we consider, i.e., we are interested only in the occurrence of the handshake and not in the data that is exchanged

65 Handshaking (Synchronous Message Passing)

66 Handshaking forms Empty set of handshake actions reduces to interleaving Models broadcasting communication

67 Mutual exclusion using an Arbiter process Model the semaphore as a separate process, called an Arbiter Example: TS1 and TS2 are the transioon systems of the parallel processes and Arbiter is the semaphore process

68

69 Railroad crossing example Three processes in the system: Train, Gate, Controller. When the Controller receives a signal that a train is approaching it closes the gate The gate is opened only arer the train has sent a signal to the Controller indicaong it has crossed the road.

70

71

72 Channel Systems

73 Asynchronous message passing Processes interact by passing informaoon to each other via channels of finite or infinite capacity A channel is like a buffer System thus consists of processes and channels If channel capacity > 0 the processes do not need to wait for a response from receiver when sending a message If channel capacity is 0 then this form of interacoon reduces to handshaking Each channel can accept messages of a specified type only

74 CommunicaOon acoons Processes can perform the following communication actions:

75 Formal definioon

76 Enabling communicaoon acoons

77

78 Example: AlternaOng Bit Protocol System consists of two processes, S (sender), R (receiver) that communicate over two channels, c, d Channel c is unreliable ( lossy ) in that it can lose messages during transmission; channel d is perfect The goal of the design is to ensure that data units (datums) transmimed by S are received by R S sends data of the form <m,b>, where m is a message and b is a control bit that cab be either 0 or 1 S transmits a message and waits for R to acknowledge receipt; if an acknowledgement is not received within a given Ome S retransmits the message If R receives the message then it sends an acknowledgement consisong of the control bit it received

79 PG for Sender

80 PG for Receiver, Timer

81 TS SemanOcs

82

83 Coming up Why model and analyze concurrent systems? How can concurrent systems be modeled? How can concurrent systems be analyzed? What tools are available for modeling and analyzing concurrent systems? IntroducOon to Promela/Spin

T Reactive Systems: Kripke Structures and Automata

T Reactive Systems: Kripke Structures and Automata Tik-79.186 Reactive Systems 1 T-79.186 Reactive Systems: Kripke Structures and Automata Spring 2005, Lecture 3 January 31, 2005 Tik-79.186 Reactive Systems 2 Properties of systems invariants: the system

More information

Lock Inference in the Presence of Large Libraries

Lock Inference in the Presence of Large Libraries Lock Inference in the Presence of Large Libraries Khilan Gudka, Imperial College London* Tim Harris, Microso8 Research Cambridge Susan Eisenbach, Imperial College London ECOOP 2012 This work was generously

More information

Timo Latvala. January 28, 2004

Timo Latvala. January 28, 2004 Reactive Systems: Kripke Structures and Automata Timo Latvala January 28, 2004 Reactive Systems: Kripke Structures and Automata 3-1 Properties of systems invariants: the system never reaches a bad state

More information

Introduction to Model Checking

Introduction to Model Checking Introduction to Model Checking René Thiemann Institute of Computer Science University of Innsbruck WS 2007/2008 RT (ICS @ UIBK) week 4 1/23 Outline Promela - Syntax and Intuitive Meaning Promela - Formal

More information

Automated Formal Methods for Embedded Systems

Automated Formal Methods for Embedded Systems Automated Formal Methods for Embedded Systems Bernd Finkbeiner Universität des Saarlandes Reactive Systems Group 2011/02/03 Bernd Finkbeiner (UdS) Embedded Systems 2011/02/03 1 / 48 Automated Formal Methods

More information

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271

4/6/2011. Model Checking. Encoding test specifications. Model Checking. Encoding test specifications. Model Checking CS 4271 Mel Checking LTL Property System Mel Mel Checking CS 4271 Mel Checking OR Abhik Roychoudhury http://www.comp.nus.edu.sg/~abhik Yes No, with Counter-example trace 2 Recap: Mel Checking for mel-based testing

More information

Tool demonstration: Spin

Tool demonstration: Spin Tool demonstration: Spin 1 Spin Spin is a model checker which implements the LTL model-checking procedure described previously (and much more besides). Developed by Gerard Holzmann of Bell Labs Has won

More information

System Correctness. EEC 421/521: Software Engineering. System Correctness. The Problem at Hand. A system is correct when it meets its requirements

System Correctness. EEC 421/521: Software Engineering. System Correctness. The Problem at Hand. A system is correct when it meets its requirements System Correctness EEC 421/521: Software Engineering A Whirlwind Intro to Software Model Checking A system is correct when it meets its requirements a design without requirements cannot be right or wrong,

More information

CSE 486/586 Distributed Systems

CSE 486/586 Distributed Systems CSE 486/586 Distributed Systems Mutual Exclusion Steve Ko Computer Sciences and Engineering University at Buffalo CSE 486/586 Recap: Consensus On a synchronous system There s an algorithm that works. On

More information

Design and Analysis of Distributed Interacting Systems

Design and Analysis of Distributed Interacting Systems Design and Analysis of Distributed Interacting Systems Lecture 5 Linear Temporal Logic (cont.) Prof. Dr. Joel Greenyer May 2, 2013 (Last Time:) LTL Semantics (Informally) LTL Formulae are interpreted on

More information

Chapter 4 Selection Structures: Making Decisions PRELUDE TO PROGRAMMING, 6TH EDITION BY ELIZABETH DRAKE

Chapter 4 Selection Structures: Making Decisions PRELUDE TO PROGRAMMING, 6TH EDITION BY ELIZABETH DRAKE Chapter 4 Selection Structures: Making Decisions 4.1 An Introduc/on to Selec/on Structures Single- alterna+ve (If-Then) A single block of statements to be executed or skipped Dual- alterna+ve (If-Then-Else)

More information

Formal Methods in Software Engineering. Lecture 07

Formal Methods in Software Engineering. Lecture 07 Formal Methods in Software Engineering Lecture 07 What is Temporal Logic? Objective: We describe temporal aspects of formal methods to model and specify concurrent systems and verify their correctness

More information

Overview. Probabilistic Programming. Dijkstra s guarded command language: Syntax. Elementary pgcl ingredients. Lecture #4: Probabilistic GCL

Overview. Probabilistic Programming. Dijkstra s guarded command language: Syntax. Elementary pgcl ingredients. Lecture #4: Probabilistic GCL Overview Lecture #4: Probabilistic GCL 1 Joost-Pieter Katoen 2 3 Recursion RWTH Lecture Series on 2018 Joost-Pieter Katoen 1/31 Joost-Pieter Katoen 2/31 Dijkstra s guarded command language: Syntax Elementary

More information

[module 2.2] MODELING CONCURRENT PROGRAM EXECUTION

[module 2.2] MODELING CONCURRENT PROGRAM EXECUTION v1.0 20130407 Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci [module 2.2] MODELING CONCURRENT PROGRAM EXECUTION 1 SUMMARY Making

More information

Temporal Logic of Actions (TLA) (a brief introduction) Shmuel Katz Computer Science Department The Technion

Temporal Logic of Actions (TLA) (a brief introduction) Shmuel Katz Computer Science Department The Technion Temporal Logic of Actions (TLA) (a brief introduction) Shmuel Katz Computer Science Department The Technion CS236368 Formal Specifications Lecture-- TLA 1 Basic Idea Combine transitions with temporal logic

More information

Model checking Timber program. Paweł Pietrzak

Model checking Timber program. Paweł Pietrzak Model checking Timber program Paweł Pietrzak 1 Outline Background on model checking (spam?) The SPIN model checker An exercise in SPIN - model checking Timber Deriving finite models from Timber programs

More information

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur

Module 3. Requirements Analysis and Specification. Version 2 CSE IIT, Kharagpur Module 3 Requirements Analysis and Specification Lesson 6 Formal Requirements Specification Specific Instructional Objectives At the end of this lesson the student will be able to: Explain what a formal

More information

Lectures 20, 21: Axiomatic Semantics

Lectures 20, 21: Axiomatic Semantics Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics

More information

COMP 763. Eugene Syriani. Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science. McGill University

COMP 763. Eugene Syriani. Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science. McGill University Eugene Syriani Ph.D. Student in the Modelling, Simulation and Design Lab School of Computer Science McGill University 1 OVERVIEW In the context In Theory: Timed Automata The language: Definitions and Semantics

More information

Binary Decision Diagrams and Symbolic Model Checking

Binary Decision Diagrams and Symbolic Model Checking Binary Decision Diagrams and Symbolic Model Checking Randy Bryant Ed Clarke Ken McMillan Allen Emerson CMU CMU Cadence U Texas http://www.cs.cmu.edu/~bryant Binary Decision Diagrams Restricted Form of

More information

Model Checking with Automata An Overview

Model Checking with Automata An Overview Model Checking with Automata An Overview Vanessa D Carson Control and Dynamical Systems, Caltech Doyle Group Presentation, 05/02/2008 VC 1 Contents Motivation Overview Software Verification Techniques

More information

CS140 Final Review. Winter 2014

CS140 Final Review. Winter 2014 CS140 Final Review Winter 2014 Administrivia Friday, March 21, 12:15-3:15pm Open book, covers all 17 lectures (including topics already on the midterm) 50% of grade based on exams using this quanoty: max

More information

Model checking and timed CTL

Model checking and timed CTL Chapter 6 Model checking and timed CTL Ah! What did I tell you? 88 miles per hour! The temporal displacement occurred at exactly 1:20am and *zero* seconds! [Dr Emmett Brown] 6.1 Timed CTL Page 86 Formal

More information

Introduction to Linear-Time Temporal Logic. CSE 814 Introduction to LTL

Introduction to Linear-Time Temporal Logic. CSE 814 Introduction to LTL Introduction to Linear-Time Temporal Logic CSE 814 Introduction to LTL 1 Outline Motivation for TL in general Types of properties to be expressed in TL Structures on which LTL formulas are evaluated Syntax

More information

TDDB68 + TDDD82. Lecture: Deadlocks

TDDB68 + TDDD82. Lecture: Deadlocks TDDB68 + TDDD82 Lecture: Deadlocks Mikael Asplund, Senior Lecturer Real-time Systems Laboratory Department of Computer and Information Science Thanks to Simin Nadjm-Tehrani and Christoph Kessler for much

More information

Formal modelling and verification in UPPAAL

Formal modelling and verification in UPPAAL Budapest University of Technology and Economics Department of Measurement and Information Systems Fault Tolerant Systems Research Group Critical Embedded Systems Formal modelling and verification in UPPAAL

More information

G52CON: Concepts of Concurrency

G52CON: Concepts of Concurrency G52CON: Concepts of Concurrency Lecture 11: Semaphores I" Brian Logan School of Computer Science bsl@cs.nott.ac.uk Outline of this lecture" problems with Peterson s algorithm semaphores implementing semaphores

More information

WHEN concurrent processes share a resource such as a file

WHEN concurrent processes share a resource such as a file 1 Verification of mutual exclusion algorithms with SMV System Nikola Bogunović, Edgar Pek Faculty of Electrical Engineering and Computing Unska 3 Croatia email: nikola.bogunovic@fer.hr, edgar.pek@fer.hr

More information

Thread Synchronization: Too Much Milk

Thread Synchronization: Too Much Milk Thread Synchronization: Too Much Milk 1 Implementing Critical Sections in Software Hard The following example will demonstrate the difficulty of providing mutual exclusion with memory reads and writes

More information

PROVING THINGS ABOUT PROGRAMS

PROVING THINGS ABOUT PROGRAMS PROVING THINGS ABOUT CONCURRENT PROGRAMS Lecture 23 CS2110 Fall 2010 Overview 2 Last time we looked at techniques for proving things about recursive algorithms We saw that in general, recursion matches

More information

Computer Science Technical Report

Computer Science Technical Report Computer Science Technical Report Feasibility of Stepwise Addition of Multitolerance to High Atomicity Programs Ali Ebnenasir and Sandeep S. Kulkarni Michigan Technological University Computer Science

More information

The UPPAAL Model Checker. Julián Proenza Systems, Robotics and Vision Group. UIB. SPAIN

The UPPAAL Model Checker. Julián Proenza Systems, Robotics and Vision Group. UIB. SPAIN The UPPAAL Model Checker Julián Proenza Systems, Robotics and Vision Group. UIB. SPAIN The aim of this presentation Introduce the basic concepts of model checking from a practical perspective Describe

More information

Software Model Checking: Theory and Practice

Software Model Checking: Theory and Practice Software Model Checking: Theory and Practice Lecture: Specification Checking - Specification Patterns Copyright 2004, Matt Dwyer, John Hatcliff, and Robby. The syllabus and all lectures for this course

More information

The Spin Model Checker : Part I/II

The Spin Model Checker : Part I/II The Spin Model Checker : Part I/II Moonzoo Kim CS Dept. KAIST Korea Advanced Institute of Science and Technology Motivation: Tragic Accidents Caused by SW Bugs 2 Cost of Software Errors June 2002 Software

More information

Formal Verification by Model Checking

Formal Verification by Model Checking Formal Verication by Model Checking Jonathan Aldrich Carnegie Mellon University Based on slides developed by Natasha Sharygina 17-654/17-754: Analysis of Software Artacts Spring 2006 1 CTL Model Checking

More information

Synchronization: Semaphores

Synchronization: Semaphores Illinois Institute of Technology Lecture 26 4/25 solved Synchronization: Semaphores CS 536: Science of Programming, Spring 2018 A. Why Avoiding interference, while good, isn t the same as coordinating

More information

Static Program Analysis

Static Program Analysis Static Program Analysis Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ws-1617/spa/ Schedule of Lectures Jan 17/19: Interprocedural DFA

More information

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization

EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Dataflow Lecture: SDF, Kahn Process Networks Stavros Tripakis University of California, Berkeley Stavros Tripakis: EECS

More information

Coordination Principles

Coordination Principles Coordination Principles 8/12/07 These principles concern how autonomous entities work together toward a common result. A coordination system is a set of agents interacting within a finite or infinite game

More information

Lecture 3 SPIN and Promela

Lecture 3 SPIN and Promela Lecture 3 SPIN and Promela 1 What is SPIN(Simple Promela INterpreter) A tool for analyzing mels of concurrent systems Mels described in Promela Language with concurrent processes Communication via shared

More information

G52CON: Concepts of Concurrency

G52CON: Concepts of Concurrency G52CON: Concepts of Concurrency Lecture 6: Algorithms for Mutual Natasha Alechina School of Computer Science nza@cs.nott.ac.uk Outline of this lecture mutual exclusion with standard instructions example:

More information

Safety and liveness for critical sections

Safety and liveness for critical sections Safety and liveness for critical sections! At most k threads are concurrently in the critical section A. Safety B. Liveness C. Both! A thread that wants to enter the critical section will eventually succeed

More information

Lecture 1: Introduction to distributed Algorithms

Lecture 1: Introduction to distributed Algorithms Distributed Algorithms M.Tech., CSE, 2016 Lecture 1: Introduction to distributed Algorithms Faculty: K.R. Chowdhary : Professor of CS Disclaimer: These notes have not been subjected to the usual scrutiny

More information

Vulnerability Analysis (III): Sta8c Analysis

Vulnerability Analysis (III): Sta8c Analysis Computer Security Course. Vulnerability Analysis (III): Sta8c Analysis Slide credit: Vijay D Silva 1 Efficiency of Symbolic Execu8on 2 A Sta8c Analysis Analogy 3 Syntac8c Analysis 4 Seman8cs- Based Analysis

More information

7. Testing and Debugging Concurrent Programs

7. Testing and Debugging Concurrent Programs 7. Testing and Debugging Concurrent Programs The purpose of testing is to find program failures => A successful test is a test that causes a program to fail. Ideally, tests are designed before the program

More information

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers

More information

More on Verification and Model Checking

More on Verification and Model Checking More on Verification and Model Checking Wednesday Oct 07, 2015 Philipp Rümmer Uppsala University Philipp.Ruemmer@it.uu.se 1/60 Course fair! 2/60 Exam st October 21, 8:00 13:00 If you want to participate,

More information

Distributed Systems Programming (F21DS1) Formal Verification

Distributed Systems Programming (F21DS1) Formal Verification Distributed Systems Programming (F21DS1) Formal Verification Andrew Ireland Department of Computer Science School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh Overview Focus on

More information

Software Model Checking. Xiangyu Zhang

Software Model Checking. Xiangyu Zhang Software Model Checking Xiangyu Zhang Symbolic Software Model Checking CS510 S o f t w a r e E n g i n e e r i n g Symbolic analysis explicitly explores individual paths, encodes and resolves path conditions

More information

Formal Methods for Software Development

Formal Methods for Software Development Formal Methods for Software Development Model Checking with Temporal Logic Wolfgang Ahrendt 21st September 2018 FMSD: Model Checking with Temporal Logic /GU 180921 1 / 37 Model Checking Check whether a

More information

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen

INF672 Protocol Safety and Verification. Karthik Bhargavan Xavier Rival Thomas Clausen INF672 Protocol Safety and Verication Karthik Bhargavan Xavier Rival Thomas Clausen 1 Course Outline Lecture 1 [Today, Sep 15] Introduction, Motivating Examples Lectures 2-4 [Sep 22,29, Oct 6] Network

More information

Lecture Notes on Program Equivalence

Lecture Notes on Program Equivalence Lecture Notes on Program Equivalence 15-312: Foundations of Programming Languages Frank Pfenning Lecture 24 November 30, 2004 When are two programs equal? Without much reflection one might say that two

More information

Automated Freedom from Interference Analysis for Automotive Software

Automated Freedom from Interference Analysis for Automotive Software Automated Freedom from Interference Analysis for Automotive Software Florian Leitner-Fischer ZF TRW 78315 Radolfzell, Germany Email: florian.leitner-fischer@zf.com Stefan Leue Chair for Software and Systems

More information

Self Stabilization. CS553 Distributed Algorithms Prof. Ajay Kshemkalyani. by Islam Ismailov & Mohamed M. Ali

Self Stabilization. CS553 Distributed Algorithms Prof. Ajay Kshemkalyani. by Islam Ismailov & Mohamed M. Ali Self Stabilization CS553 Distributed Algorithms Prof. Ajay Kshemkalyani by Islam Ismailov & Mohamed M. Ali Introduction There is a possibility for a distributed system to go into an illegitimate state,

More information

301AA - Advanced Programming [AP-2017]

301AA - Advanced Programming [AP-2017] 301AA - Advanced Programming [AP-2017] Lecturer: Andrea Corradini andrea@di.unipi.it Tutor: Lillo GalleBa galleba@di.unipi.it Department of Computer Science, Pisa Academic Year 2017/18 AP-2017-07: So%ware

More information

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab)

Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Computer Lab 1: Model Checking and Logic Synthesis using Spin (lab) Richard M. Murray Nok Wongpiromsarn Ufuk Topcu Calornia Institute of Technology AFRL, 25 April 2012 Outline Spin model checker: modeling

More information

SPIN, PETERSON AND BAKERY LOCKS

SPIN, PETERSON AND BAKERY LOCKS Concurrent Programs reasoning about their execution proving correctness start by considering execution sequences CS4021/4521 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College

More information

A Semantics to Generate the Context-sensitive Synchronized Control-Flow Graph (extended)

A Semantics to Generate the Context-sensitive Synchronized Control-Flow Graph (extended) A Semantics to Generate the Context-sensitive Synchronized Control-Flow Graph (extended) Marisa Llorens, Javier Oliver, Josep Silva, and Salvador Tamarit Universidad Politécnica de Valencia, Camino de

More information

Th(N, +) is decidable

Th(N, +) is decidable Theorem 6.12 Th(N, +) is decidable Presented by: Brian Lee Two Domains 1. We can give an algorithm to decide truth 2. A problem is undecidable First Order Logic Also known as First order predicate calculus

More information

Verification Finite-state process modeling and reachability analysis

Verification Finite-state process modeling and reachability analysis Verification Finite-state process modeling and reachability analysis Topics: Finite-state process modeling Verification through interactive simulation Concurrent composition of processes Verification through

More information

SPIN part 2. Verification with LTL. Jaime Ramos. Departamento de Matemática, Técnico, ULisboa

SPIN part 2. Verification with LTL. Jaime Ramos. Departamento de Matemática, Técnico, ULisboa SPIN part 2 Verification with LTL Jaime Ramos Departamento de Matemática, Técnico, ULisboa Borrowed from slides by David Henriques, Técnico, ULisboa LTL model checking How Spin works Checks non-empty intersection

More information

Proving the Correctness of Distributed Algorithms using TLA

Proving the Correctness of Distributed Algorithms using TLA Proving the Correctness of Distributed Algorithms using TLA Khushboo Kanjani, khush@cs.tamu.edu, Texas A & M University 11 May 2007 Abstract This work is a summary of the Temporal Logic of Actions(TLA)

More information

COMP 3430 Robert Guderian

COMP 3430 Robert Guderian Operating Systems COMP 3430 Robert Guderian file:///users/robg/dropbox/teaching/3430-2018/slides/06_concurrency/index.html?print-pdf#/ 1/76 1 Concurrency file:///users/robg/dropbox/teaching/3430-2018/slides/06_concurrency/index.html?print-pdf#/

More information

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 20 Concurrency Control Part -1 Foundations for concurrency

More information

Reminder from last ;me

Reminder from last ;me Concurrent systems Lecture 5: Concurrency without shared data; transac;ons Dr Robert N. M. Watson 1 Reminder from last ;me Liveness proper;es Deadlock (requirements; resource alloca;on graphs; detec;on;

More information

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN

Promela and SPIN. Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH. Promela and SPIN Promela and SPIN Mads Dam Dept. Microelectronics and Information Technology Royal Institute of Technology, KTH Promela and SPIN Promela (Protocol Meta Language): Language for modelling discrete, event-driven

More information

Formal Verification for UML/SysML models

Formal Verification for UML/SysML models Formal Verification for UML/SysML models IBM Research Lab - Haifa Content Formal verification v.s. testing Correctness properties Formal verification for Rhapsody models 2 Formal Verification Desired Properties

More information

Distributed Algorithms. Partha Sarathi Mandal Department of Mathematics IIT Guwahati

Distributed Algorithms. Partha Sarathi Mandal Department of Mathematics IIT Guwahati Distributed Algorithms Partha Sarathi Mandal Department of Mathematics IIT Guwahati Thanks to Dr. Sukumar Ghosh for the slides Distributed Algorithms Distributed algorithms for various graph theoretic

More information

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers

More information

Coordination and Agreement

Coordination and Agreement Coordination and Agreement Nicola Dragoni Embedded Systems Engineering DTU Informatics 1. Introduction 2. Distributed Mutual Exclusion 3. Elections 4. Multicast Communication 5. Consensus and related problems

More information

SCOOP A contract-based concurrent object-oriented programming model

SCOOP A contract-based concurrent object-oriented programming model SCOOP A contract-based concurrent object-oriented programming model Benjamin Morandi 1, Sebastian S. Bauer 2, and Bertrand Meyer 1 1 Chair of Software Engineering, Swiss Federal Institute of Technology

More information

Asynchronous Models. Chapter Asynchronous Processes States, Inputs, and Outputs

Asynchronous Models. Chapter Asynchronous Processes States, Inputs, and Outputs Chapter 3 Asynchronous Models 3.1 Asynchronous Processes Like a synchronous reactive component, an asynchronous process interacts with other processes via inputs and outputs, and maintains an internal

More information

Double Header. Two Lectures. Flying Boxes. Some Key Players: Model Checking Software Model Checking SLAM and BLAST

Double Header. Two Lectures. Flying Boxes. Some Key Players: Model Checking Software Model Checking SLAM and BLAST Model Checking #1 Double Header Two Lectures Model Checking Software Model Checking SLAM and BLAST Flying Boxes It is traditional to describe this stuff (especially SLAM and BLAST) with high-gloss animation

More information

The SPIN Model Checker

The SPIN Model Checker The SPIN Model Checker Metodi di Verifica del Software Andrea Corradini Lezione 1 2013 Slides liberamente adattate da Logic Model Checking, per gentile concessione di Gerard J. Holzmann http://spinroot.com/spin/doc/course/

More information

Cyber Physical System Verification with SAL

Cyber Physical System Verification with SAL Cyber Physical System Verification with July 22, 2013 Cyber Physical System Verification with Outline 1 2 3 4 5 Cyber Physical System Verification with Table of Contents 1 2 3 4 5 Cyber Physical System

More information

Model checking pushdown systems

Model checking pushdown systems Model checking pushdown systems R. Ramanujam Institute of Mathematical Sciences, Chennai jam@imsc.res.in Update Meeting, IIT-Guwahati, 4 July 2006 p. 1 Sources of unboundedness Data manipulation: integers,

More information

Modeling and Analysis of Networked Embedded Systems using UPPAAL. Ezio Bartocci

Modeling and Analysis of Networked Embedded Systems using UPPAAL. Ezio Bartocci Modeling and Analysis of Networked Embedded Systems using UPPAAL Ezio Bartocci Overview Timed Automata in UPPAAL UPPAAL modeling language Declara5ons in UPPAAL Templates in UPPAAL Urgent Channels Broadcast

More information

Model-Checking Concurrent Systems. The Model Checker Spin. The Model Checker Spin. Wolfgang Schreiner

Model-Checking Concurrent Systems. The Model Checker Spin. The Model Checker Spin. Wolfgang Schreiner Model-Checking Concurrent Systems Wolfgang Schreiner Wolfgang.Schreiner@risc.jku.at Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria http://www.risc.jku.at 1.

More information

Thread Synchronization: Foundations. Properties. Safety properties. Edsger s perspective. Nothing bad happens

Thread Synchronization: Foundations. Properties. Safety properties. Edsger s perspective. Nothing bad happens Edsger s perspective Testing can only prove the presence of bugs Thread Synchronization: Foundations Properties Property: a predicate that is evaluated over a run of the program (a trace) every message

More information

Deadlock. Disclaimer: some slides are adopted from Dr. Kulkarni s and book authors slides with permission 1

Deadlock. Disclaimer: some slides are adopted from Dr. Kulkarni s and book authors slides with permission 1 Deadlock Disclaimer: some slides are adopted from Dr. Kulkarni s and book authors slides with permission 1 Recap: Synchronization Race condition A situation when two or more threads read and write shared

More information

COMP251: Disjoint sets

COMP251: Disjoint sets COMP251: Disjoint sets Jérôme Waldispühl School of Computer Science McGill University Based on slides from M. Langer (McGill) Announces Assignment 1 is due on Wednesday February 1 st. Submit your soluoon

More information

Network Protocol Design and Evaluation

Network Protocol Design and Evaluation Network Protocol Design and Evaluation 05 - Validation, Part III Stefan Rührup Summer 2009 Overview In the first parts of this chapter: Validation models in Promela Defining and checking correctness claims

More information

The SPIN Model Checker

The SPIN Model Checker The SPIN Model Checker Metodi di Verifica del Software Andrea Corradini GianLuigi Ferrari Lezione 3 2011 Slides per gentile concessione di Gerard J. Holzmann 2 the do-statement do :: guard 1 -> stmnt 1.1

More information

Verifying Liveness Properties of ML Programs

Verifying Liveness Properties of ML Programs Verifying Liveness Properties of ML Programs M M Lester R P Neatherway C-H L Ong S J Ramsay Department of Computer Science, University of Oxford ACM SIGPLAN Workshop on ML, 2011 09 18 Gokigeny all! Motivation

More information

Verification of Bakery algorithm variants for two processes

Verification of Bakery algorithm variants for two processes Verification of Bakery algorithm variants for two processes David Dedi 1, Robert Meolic 2 1 Nova Vizija d.o.o., Vreerjeva ulica 8, SI-3310 Žalec 2 Faculty of Electrical Engineering and Computer Science,

More information

INF5140: Specification and Verification of Parallel Systems

INF5140: Specification and Verification of Parallel Systems INF5140: Specification and Verification of Parallel Systems Lecture 09 Defining Correctness Claims Gerar Schneider Department of Informatics University of Oslo INF5140, Spring 2007 Gerar Schneider (Ifi,

More information

Model Checking with Abstract State Matching

Model Checking with Abstract State Matching Model Checking with Abstract State Matching Corina Păsăreanu QSS, NASA Ames Research Center Joint work with Saswat Anand (Georgia Institute of Technology) Radek Pelánek (Masaryk University) Willem Visser

More information

CSE 120. Fall Lecture 6: Semaphores. Keith Marzullo

CSE 120. Fall Lecture 6: Semaphores. Keith Marzullo CSE 120 Principles of Operating Systems Fall 2007 Lecture 6: Semaphores Keith Marzullo Announcements Homework #2 out Homework #1 almost graded... Discussion session on Wednesday will entertain questions

More information

Alloy: A Lightweight Object Modelling Notation

Alloy: A Lightweight Object Modelling Notation Alloy: A Lightweight Object Modelling Notation Daniel Jackson, ACM Transactions on Software Engineering, 2002 Presented By: Steven Stewart, 2012-January-23 1 Alloy: 2002 to present Software is built on

More information

Software Model Checking. From Programs to Kripke Structures

Software Model Checking. From Programs to Kripke Structures Software Model Checking (in (in C or or Java) Java) Model Model Extraction 1: int x = 2; int y = 2; 2: while (y

More information

301AA - Advanced Programming [AP-2017]

301AA - Advanced Programming [AP-2017] 301AA - Advanced Programming [AP-2017] Lecturer: Andrea Corradini andrea@di.unipi.it Tutor: Lillo GalleBa galleba@di.unipi.it Department of Computer Science, Pisa Academic Year 2017/18 AP-2017-12: Polymorphisms

More information

Inferring Synchronization under Limited Observability

Inferring Synchronization under Limited Observability Inferring Synchronization under Limited Observability Martin Vechev, Eran Yahav, and Greta Yorsh IBM T.J. Watson Research Center Abstract. This paper addresses the problem of automatically inferring synchronization

More information

Concurrent Processes Rab Nawaz Jadoon

Concurrent Processes Rab Nawaz Jadoon Concurrent Processes Rab Nawaz Jadoon DCS COMSATS Institute of Information Technology Assistant Professor COMSATS Lahore Pakistan Operating System Concepts Concurrent Processes If more than one threads

More information

Resource management. Real-Time Systems. Resource management. Resource management

Resource management. Real-Time Systems. Resource management. Resource management Real-Time Systems Specification Implementation Verification Mutual exclusion is a general problem that exists at several levels in a real-time system. Shared resources internal to the the run-time system:

More information

Chapter 6: Process Synchronization

Chapter 6: Process Synchronization Chapter 6: Process Synchronization Objectives Introduce Concept of Critical-Section Problem Hardware and Software Solutions of Critical-Section Problem Concept of Atomic Transaction Operating Systems CS

More information

Model Checking. Automatic Verification Model Checking. Process A Process B. when not possible (not AI).

Model Checking. Automatic Verification Model Checking. Process A Process B. when not possible (not AI). Sérgio Campos scampos@dcc.ufmg.br Why? Imagine the implementation of a complex hardware or software system: A 100K gate ASIC perhaps 100 concurrent modules; A flight control system dozens of concurrent

More information

No model may be available. Software Abstractions. Recap on Model Checking. Model Checking for SW Verif. More on the big picture. Abst -> MC -> Refine

No model may be available. Software Abstractions. Recap on Model Checking. Model Checking for SW Verif. More on the big picture. Abst -> MC -> Refine No model may be available Programmer Software Abstractions Tests Coverage Code Abhik Roychoudhury CS 5219 National University of Singapore Testing Debug Today s lecture Abstract model (Boolean pgm.) Desirable

More information

Interaction Testing. Chapter 15

Interaction Testing. Chapter 15 Interaction Testing Chapter 15 Interaction faults and failures Subtle Difficult to detect with testing Usually seen after systems have been delivered In low probability threads Occur after a long time

More information

Distributed Algorithms 6.046J, Spring, 2015 Part 2. Nancy Lynch

Distributed Algorithms 6.046J, Spring, 2015 Part 2. Nancy Lynch Distributed Algorithms 6.046J, Spring, 2015 Part 2 Nancy Lynch 1 This Week Synchronous distributed algorithms: Leader Election Maximal Independent Set Breadth-First Spanning Trees Shortest Paths Trees

More information

Chapter 9. Labelled Transition Systems. System Composition. specifications. implementations.

Chapter 9. Labelled Transition Systems. System Composition. specifications. implementations. SFWR ENG 3BB4 Software Design 3 Concurrent System Design SFWR ENG 3BB4 Software Design 3 Concurrent System Design 9.9 System Composition Chapter 9 Labelled Transition Systems A system specification is

More information