280 likes | 482 Views
CCS: Processes and Equivalences. Reading: Peled 8.1, 8.2, 8.5 . Mads Dam. Finite State Automata. Coffee machine A 1 : Coffee machine A 2 : Are the two machines ”the same”?. 1kr. 1kr. tea. coffee. 1kr. 1kr. 1kr. tea. coffee. Little Language Refresher.
E N D
CCS: Processes and Equivalences Reading: Peled 8.1, 8.2, 8.5 Mads Dam
Finite State Automata • Coffee machine A1: • Coffee machine A2: • Are the two machines ”the same”? 1kr 1kr tea coffee 1kr 1kr 1kr tea coffee
Little Language Refresher Automata recognize strings, e.g. 1kr tea 1kr 1kr coffee Language = set of strings A1 ”=” language recognized by A1 : empty string ST: concatenation of S and T S + T: union of S and T S*: Iteration of S S* = SS...S Arden’s rule: The equation X = SX + T has solution X = S*T If S the solution is unique } 0 or more times
For A1: p1 = 1kr p2 + p2 = 1kr p3 + tea p1 p3 = coffee p1 p2 = 1kr coffee p1 + tea p1 (etc, use Arden) p1 = (1kr 1kr coffee + 1kr tea)* = q1 BUT: p1, q1 should be different! SO: need new theory to talk about behaviour instead of acceptance Now compute... A1: 1kr p2 p3 1kr p1 tea coffee q3 A2: 1kr 1kr 1kr q4 q1 q2 tea coffee
Process Algebra Calculus of concurrent processes Main issues: • How to specify concurrent processes in an abstract way? • Which are the basic relations between concurrency and non-determinism? • Which basic methods of construction (= operators) are needed? • When do two processes behave differently? • When do they behave the same? • Rules of calculation: • Replacing equals for equals • Substitutivity • Specification and modelling issues
Process Equivalences Sameness of behaviour = equivalence of states Many process equivalences have been proposed (cf. Peled 8.5) For instance: q1» q2 iff • q1 and q2 have the same paths, or • q1 and q2 may always refuse the same interactions, or • q1 and q2 pass the same tests, or • q1 and q2 have identical branching structure CCS: Focus on bisimulation equivalence
Bisimulation Equivalence Intuition: q1» q2 iff q1 and q2 have same branching structure Idea: Find relation which will relate two states with the same transition structure, and make sure the relation is preserved Example: q1 q2 a a a c b b c b c
Strong Bisimulation Equivalence Given: Labelled transition system T = (Q,,R) Looking for a relation S Q Q on states S is a strong bisimulation relation if whenever q1 S q2 then: • q1 q1’ implies q2 q2’ for some q2’ such that q1’ S q2’ • q2 q2’ implies q1 q1’ for some q1’ such that q1’ S q2’ q1 and q2 are strongly bisimilar iff q1 S q2 for some strong bisimulation relation S q1 q2: q1 and q2 are strongly bisimilar Peled uses ´bis for »
Example q1 p0 a b a a q0 p1 a b b a q2 p2 a a Does q0» p0 hold?
Example q0 p0 a a a q1 p1 q2 b b c c p2 p3 q3 q4 Does q0» p0 hold?
Weak Transitions What to do about internal activity? : Transition label for activity which is not externally visible • q ) q’ iff q = q0 q1 ... qn = q’, n 0 • q ) q’ iff q ) q’ • q ) q’ iff q ) q1 q2) q’ () Beware that ) = ) (non-standard notation) Observational equivalence, v.1.0: Bisimulation equivalence with in place of Let q1¼’ q2 iff q1» q2 with ) in place of ! Cumbersome definition: Too many transitions q ) q’ to check
Observational Equivalence Let S µ Q Q. The relation S is a weak bisimulation relation if whenever q1 S q2 then: • q1 q1’ implies q2 q2’ for some q2’ such that q1’ S q2’ • q2 q2’ implies q1 q1’ for some q1’ such that q1’ S q2’ q1 and q2 are observationally equivalent, or weakly bisimulation equivalent, if q1 S q2 for some weak bisimulation relation S q1 q2: q1 and q2 are observationally equivalent/weakly bisimilar Exercise: Show that ¼’ = ¼
Examples a a ¼ a a ¼ a c a b a ¼ b a c c
Examples b b a a b All three are inequivalent a
Calculus of Communicating Systems - CCS Language for describing communicating transition systems Behaviours as algebraic terms Calculus: Centered on observational equivalence Elegant mathematical treatment Emphasis on process structure and modularity Recent extensions to security and mobile systems • CSP - Hoare: Communicating Sequential Processes (85) • ACP - Bergstra and Klop: Algebra of Communicating Processes (85) • CCS - Milner: Communication and Concurrency (89) • Pi-calculus – Milner (99), Sangiorgi and Walker (01) • SPI-calculus – Abadi and Gordon (99) • Many recent successor for security and mobility (more in 2G1517)
CCS - Combinators The idea: 7 elementary ways of producing or putting together labelled transition systems Pure CCS: • Turing complete – can express any Turing computable function Value-passing CCS: • Additional operators for value passing • Definable • Convenient for applications
Actions Names a,b,c,d,... Co-names: a,b,c,d,... • Sorry: Overbar not good in texpoint! • a = a In CCS, names and co-names synchronize Labels l: Names [ co-names 2 Actions = = Labels [ {} Define by: • l = l, and • =
Flow Graphs Often draw static process structures using simple diagrams like: Only labels listed may be made available at external interface Composing flowgraphs: The chb names are now internal cha0 chb0 cha1 chb1 cha0 chb0 chb0 chc0 cha1 chb1 chb1 chc1
Nil 0 No transitions Prefix.P in.out.0 in out.0 out 0 DefinitionA == P Buffer == in.out.Buffer Buffer in out.Buffer out Buffer out CCS Combinators, II in out in
ChoiceP + Q BadBuf == in.(.0 + out.BadBuf) BadBuf in .0 + out.BadBuf 0 or out BadBuf Obs: No priorities between ’s, a’s or a’s CCS doesn’t ”know” which labels represent input, and which output May use notation out CCS Combinators, Choice in
2-place Boolean Buffer Flow graph: Buf2: Empty 2-place buffer Buf20: 2-place buffer holding a 0 Buf21: Do. holding a 1 Buf^2_{00}: Do. Holding 00 ... etc. ... Buf2 == in0.Buf20 + in1.Buf21 Buf20 == out0.Buf2 + in0.Buf200 + in1.Buf201 Buf21 == ... Buf200 == out0.Buf20 Buf201 == out0.Buf21 Buf210 == ... Buf211 == ... Example: Boolean Buffer in0 out0 in1 out1
ai: start taski bi: stop taski Requirements: a1,...,an to occur cyclically ai/bi to occur alternately beginning with ai Any a_i/b_i to be schedulable at any time, provided 1 and 2 not violated Let X {1,...,n} Schedi,X: i to be scheduled X pending completion Scheduler == Sched1, Schedi,X == jXbj.Schedi,X-{j}, if i X == jXbj.Schedi,X-{j} + ai.Schedi+1,X{i}, if i X Example: Scheduler
Example: Counter Basic example of infinite-state system Count == Count0 Count0 == zero.Count0 + inc.Count1 Counti+1 == inc.Counti+2 + dec.Counti Can do stacks and queues equally easy – try it!
CompositionP | Q Buf1 == in.comm.Buf1 Buf2 == comm.out.Buf2 Buf1 | Buf2 in comm.Buf1 | Buf2 Buf1 | out.Buf2 out Buf1 | Buf2 But also, for instance: Buf1 | Buf2 comm Buf1 | out.Buf2 out Buf1 | Buf2 CCS Combinators, Composition
Buf1 == in.comm.Buf1 Buf2 == comm.out.Buf2 Buf1 | Buf2: Composition, Example comm.Buf1|Buf2 out comm in comm Buf1|Buf2 comm.Buf1|out.Buf2 comm in out comm Buf1|out.Buf2
Restriction P LBuf1 == in.comm.Buf1 Buf2 == comm.out.Buf2 (Buf1 | Buf2) {comm} in comm.Buf1 | Buf2 Buf1 | out.Buf2 out Buf1 | Buf2 But not: (Buf1 | Buf2) {comm} comm Buf1 | out.Buf2 out Buf1 | Buf2 CCS Combinators, Restriction
Relabelling P[f]Buf == in.out.Buf1 Buf1 == Buf[comm/out] = in.comm.Buf1 Buf2 == Buf[comm/in] = comm.out.Buf2 Relabelling function f must preserve complements: f(a) = f(a) And : f() = Relabelling function often given by name substitution as above CCS Combinators, Relabelling
1-place 2-way buffer: Bufab == a+.b-.Bufab + b+.a-.Bufab Flow graph: LTS: Bufbc == Bufab[c+/b+,c-/b-,b-/a+,b+/a-] (Obs: Simultaneous substitution!) Sys = (Bufab | Bufbc)\{b+,b-} Intention: What went wrong? Example: 2-way Buffers a+ b- a+ b- b- c+ a- b+ a- b+ b+ c- b- b-.Bufab a+ Bufab b+ a-.Bufab a-