Specyfikownie i weryfikownie Progrmy współieżne Mrek A. Bednrczyk, www.ipipn.gd.pl Litertur wiele prc dostępnych w Sieci np.: http://www.wikipedi.org/ Specyfikownie i weryfikcj progrmy współieżne
PJP Prosty Język Procesów Definicje rekursywne x = P(x) rekursywn definicj Skłdni PJP P ::= 0 pusty proces.p kcj P + P niedeterministyczny wyór P P złożenie równoległe x odwołnie do rekursywnej definicji Specyfikownie i weryfikcj progrmy współieżne -2-
Przykłdy 0 + 0 sum dwóch pustych procesów...0 wykonj, potem, potem c i skończ x =.x wykonuj nieskończenie wiele rzy x =.x.x generuj współieżne kopie x Specyfikownie i weryfikcj progrmy współieżne -3-
Semntyk opercyjn PJP Proces P może przesksztłcić się w proces Q poprzez wykonnie kcji, notcj P Q jeśli tkie stwierdzenie d się wywieść z podnych dlej reguł Specyfikownie i weryfikcj progrmy współieżne -4-
Semntyk opercyjn PJP.P P P R P+Q R wykonnie kcji niedeterministyczny wyór lewego procesu Q R P+Q R niedeterministyczny wyór prwego procesu Specyfikownie i weryfikcj progrmy współieżne -5-
Semntyk opercyjn PJP (cd) P R P Q R Q wyór lewego procesu Q R P Q P R wyór prwego procesu x=p P Q x Q odwołnie do definicji Specyfikownie i weryfikcj progrmy współieżne -6-
Konsekwencje semntyki opercyjnej Proces 0 nie może wykonć żdnej kcji: 0 P nie d się wywieść! Podonie zlokowne są procesy: 0+0, 0 0, Proces.P może wykonć tylko jedną kcję:.p P Ogólnie, kżdy proces P może wykonć skończoną liczę kcji, to znczy istnieje skończenie wiele Q orz tkich, że P Q. Specyfikownie i weryfikcj progrmy współieżne -7-
Grf przejść:.x dl x =.x.x x.x.x x x =.x.x x x x Specyfikownie i weryfikcj progrmy współieżne -8-
Od procesów do grfów przejść Stny = procesy Relcj przejści etykietown kcjmi P Q jeśli d się tkie stwierdzenie wywieść z reguł semntyki opercyjnej Specyfikownie i weryfikcj progrmy współieżne -9-
Grf przejść:.x dl x =.x +.x Specyfikownie i weryfikcj progrmy współieżne -10-
Grf przejść:.x dl x =.x +.x.x.x+.x x.x Specyfikownie i weryfikcj progrmy współieżne -11-
Grf przejść:.x dl x =.y+.x orz y =.x Proces.x gdzie x =.y+.x y =.x Specyfikownie i weryfikcj progrmy współieżne -12-
Grf przejść:.x dl x =.y+.x orz y =.x Proces.x gdzie x =.y+.x y =.x.y y.y+.x x.x Specyfikownie i weryfikcj progrmy współieżne -13-
Grf przejść:.x dl x =.0+..x Proces.x gdzie x =.0+..x Specyfikownie i weryfikcj progrmy współieżne -14-
Grf przejść:.x dl x =.0+..x Proces.x gdzie x =.0+..x.x..x.0+..x x.x.0 0 Specyfikownie i weryfikcj progrmy współieżne -15-
Grf przejść: x =.x.x Frgment, owiem grf jest nieskończony...x.x x.x x x.x.x (.x x ) x x.x ((x.x) x ) (x.x ) (.x x ) Specyfikownie i weryfikcj progrmy współieżne -16-
Interesujące włsności procesów Wyklucznie współieżne procesy mją wyłączność n dziłnie w sekcji krytycznej Dedlock = lokd = zkleszczenie stn, w którym proces nie może wykonywć żdnych kcji Zgłdznie jeden z procesów jest pozwiony przez inne dostępu do zsoów Jk wyrzić tkie włsności??? Specyfikownie i weryfikcj progrmy współieżne -17-
HML (Wielo-)modln logik Hennessy-Milner Φ ::= tt prwd Φ Ψ koniunkcj Φ negcj Φ możn wykonć y osiągnąć Φ []Φ kżde wykonnie prowdzi do Φ fłsz: ff tt dyzjunkcj: Φ Ψ ( Φ Ψ) Specyfikownie i weryfikcj progrmy współieżne -18-
Semntyk HML Proces P spełni formułę Φ: P = Φ P = tt P = Φ Ψ P = Φ P = Φ P = []Φ zwsze jeśli P = Φ orz P = Ψ jeśli P = Φ jeśli P Q i Q = Φ dl pewnego Q jeśli P Q implikuje Q = Φ dl kżdego Q Specyfikownie i weryfikcj progrmy współieżne -19-
Przykłdy P = tt proces P może wykonć kcję P = ff równowżne ff P = tt proces P może wykonć kcje, poczym P = tt tt proces P może wykonć kcję lu kcję P = tt tt proces P może wykonć kcję orz kcję Specyfikownie i weryfikcj progrmy współieżne -20-
Przykłdy (cd) P = [] ff proces P nie może wykonć kcji P = [] tt równowżne tt P = [] tt zchodzi zwsze, jeśli P = [] ff po kżdej kcji proces P gotów wykonć P = [] ff tt P nie może wykonć lu może kcję P = [] ff tt P może wykonć kcję orz nie może Specyfikownie i weryfikcj progrmy współieżne -21-
Przykłdy (cd) Notcj: [-]Φ A []Φ - Φ A P = [-] ff proces P nie może wykonć żdnej kcji proces P jest zlokowny!!! P = - tt proces P może wykonć jkąś kcję proces P jest żywy Φ Specyfikownie i weryfikcj progrmy współieżne -22-
Grf przejść:.x dl x =.x +.x.x = tt?.x = []ff?.x = tt?.x.x = []ff?.x = [] tt?.x = []ff tt?.x = []ff tt?.x+.x x x = [] [-] ff?.x x = [] - tt? Specyfikownie i weryfikcj progrmy współieżne -23-
Grf przejść:.x dl x =.x +.x.x = tt.x = []ff.x = tt.x.x = []ff.x = [] tt.x = []ff tt.x = []ff tt.x+.x x x = [] [-] ff x = [] - tt.x Specyfikownie i weryfikcj progrmy współieżne -24-
Grf przejść:.x dl x =.y+.x i y =.x.x = tt?.x = []ff?.y y.x = tt?.x = []ff?.x = [] tt?.y+.x x.x.x = []ff tt?.x = []ff tt? x = [] [-] ff? x = [] - tt? Specyfikownie i weryfikcj progrmy współieżne -25-
Grf przejść:.x dl x =.y+.x i y =.x.x = tt.x = []ff.y y.x = tt.x = []ff.x = [] tt.x = []ff tt.x = []ff tt x = [] [-] ff x = [] - tt.y+.x x.x Specyfikownie i weryfikcj progrmy współieżne -26-
Grf przejść:.x dl x =.0+..x.x = tt?.x = []ff?.x.x = tt?.x = []ff?.x = [] tt? x = [][]ff [] tt?..x.0.0+..x x.x x = []ff [] tt? x = [-] ff? 0 x = [] - tt? Specyfikownie i weryfikcj progrmy współieżne -27-
Grf przejść:.x dl x =.0+..x.x = tt.x = []ff.x.x = tt.x = []ff.x = [] tt x = [][]ff [] tt x = []ff [] tt x = [-] ff..x.0.0+..x x 0.x x = [] - tt Specyfikownie i weryfikcj progrmy współieżne -28-
Przykłdy (cd) P = [-] ff dedlock (lokd) proces P nie może wykonć żdnej kcji P = - tt P jest żywy proces P może wykonć jkąś kcję P = - tt []ff??? P = - tt [-]Φ??? Specyfikownie i weryfikcj progrmy współieżne -29-
Przykłdy (cd) P = [-] ff dedlock (lokd) proces P nie może wykonć żdnej kcji P = - tt P jest żywy proces P może wykonć jkąś kcję P = - tt []ff proces P może wykonć tylko kcję P = - tt [-]Φ??? Specyfikownie i weryfikcj progrmy współieżne -30-
Przykłdy (cd) P = [-] ff dedlock (lokd) proces P nie może wykonć żdnej kcji P = - tt P jest żywy proces P może wykonć jkąś kcję P = - tt []ff proces P może wykonć tylko kcję P = - tt [-]Φ P jest żywy, cokolwiek zroi, zjdzie Φ Specyfikownie i weryfikcj progrmy współieżne -31-
Negcj w logice HM jest zędn ff tt tt ff (Φ Ψ) ( Φ) ( Ψ) (Φ Ψ) ( Φ) ( Ψ) Φ [] ( Φ) []Φ ( Φ) - Φ [-] ( Φ) [-]Φ - ( Φ) Specyfikownie i weryfikcj progrmy współieżne -32-
Prwdziwość, spełnilność,... Φ jest spełniln jeśli P = Φ dl pewnego procesu P Φ jest niespełniln jeśli P = Φ dl żdnego procesu P Φ jest tutologią jeśli P = Φ dl kżdego procesu P Specyfikownie i weryfikcj progrmy współieżne -33-
Prwdziwość, spełnilność,... Φ jest spełniln to Φ jest niespełniln??? Φ jest niespełniln to Φ jest tutologią??? Φ jest tutologią to Φ jest spełniln??? Φ jest tutologią to Φ jest niespełniln??? Czy []Φ [] Φ jest tutologią? Specyfikownie i weryfikcj progrmy współieżne -34-
Prwdziwość, spełnilność,... Φ jest spełniln to Φ jest niespełniln??? Φ jest niespełniln to Φ jest tutologią??? Φ jest tutologią to Φ jest spełniln??? Φ jest tutologią to Φ jest niespełniln??? Czy []Φ [] Φ jest tutologią? Nie! [] tt [][]ff nie jest tutologią! Specyfikownie i weryfikcj progrmy współieżne -35-
Spełnilność Dne: formuł Φ Prolem: Czy istnieje P, t.ż. P = Φ? Twierdzenie Prolem spełnilności jest NP-zupełny Specyfikownie i weryfikcj progrmy współieżne -36-
Model checking Dne: proces P formuł Φ Prolem: Czy P = Φ? Twierdzenie Prolem model checkingu jest P-zupełny Specyfikownie i weryfikcj progrmy współieżne -37-
HML z mło ekspresywn! Żden z prolemów: Czy ewolucj procesu P może kiedyś doporowdzić do dedlocku? Czy w kżdej ewolucji procesu P mmy zpewnione wyklucznie? nie dje się wyrzić w HML, o kżd formuł d tylko skończony początek ewolucji. Specyfikownie i weryfikcj progrmy współieżne -38-
Ścieżki Ścieżk z P to ciąg procesów, (skończony lu nie), π = P 0,P 1,...,P n tki, że P=P 0 orz dl wszystkich i zchodzi P i Pi+1 dl pewnego Notcj: π i = P i,p i+1,...,p n przeieg to ścieżk nieskończon, lu skończon kończąc się w zlokownym procesie. Specyfikownie i weryfikcj progrmy współieżne -39-
LTL logik czsu liniowego Logik Czsu Liniowego Φ ::= p zmienn zdniow tt prwd Φ Ψ koniunkcj Φ negcj (-)Φ w jednym kroku możn osiągną Φ FΦ proces może osiągnąć Φ GΦ proces zwsze ędzie spełnić Φ Φ U Ψ proces spełni Ψ do tego czsu ędzie spełnił Φ Specyfikownie i weryfikcj progrmy współieżne -40-
Semntyk LTL Wrtościownie ρ przypisuje kżdej zmiennej zdniowej p ziór procesów ρ(p) które ją spełniją. π, ρ = Φ ścieżk π przy wrtościowniu ρ spełni Φ P,ρ = Φ proces P przy wrtościowniu ρ spełni Φ jeśli π, ρ = Φ dl kżdego przeiegu π z P, tzn. dl kżdej mksymlnej (nieskończonej lu zlokownej) ścieżki z P Specyfikownie i weryfikcj progrmy współieżne -41-
Semntyk LTL (cd) π = P 0,P 1,...,P n ścieżk z P ρ wrtościownie π, ρ = p jeśli P 0 ρ(p) π, ρ = tt zwsze π, ρ = Φ Ψ jeśli π = Φ orz π, ρ = Ψ π, ρ = Φ jeśli π = Φ Specyfikownie i weryfikcj progrmy współieżne -42-
Semntyk LTL (cd) π, ρ = (-)Φ jeśli π 1, ρ = Φ π, ρ = FΦ jeśli π i, ρ = Φ dl pewnego i π, ρ = GΦ jeśli π i, ρ = Φ dl kżdego i π, ρ = Φ U Ψ jeśli π i, ρ = Ψ dl pewnego i orz π j, ρ = Φ dl j = 0,..., i 1 Specyfikownie i weryfikcj progrmy współieżne -43-
Grf przejść:.x dl x =.0+..x Przeieg π = x,.x, x, x,..., π = x,.x, x, 0 π = x, 0 ρ jk n rysunku.x, ρ = q p?..x q.x p x, ρ = q p? π, ρ = F(p q)? π, ρ = F(p q)?.0+..x x q x, ρ = F(p q)? x, ρ = F(p q)? x, ρ = F(q p)? 0 p Specyfikownie i weryfikcj progrmy współieżne -44-
Grf przejść:.x dl x =.0+..x Przeiegi: π = x,.x, x, x,..., π = x,.x, x, 0 π = x, 0 ρ jk n rysunku.x, ρ = q p..x q.x p x, ρ = q p π, ρ = F(p q) π, ρ = F(p q).0+..x x q x, ρ = F(p q) x, ρ = F(p q) x, ρ = F(q p) 0 p Specyfikownie i weryfikcj progrmy współieżne -45-
Grf przejść:.x dl x =.0+..x Przeieg π = x,.x, x, x,..., π = x,.x, x, 0 π = x, 0 ρ jk n rysunku x, ρ = G(p q)?..x q.x p π, ρ = F(Fq Gp)? π, ρ = F(Fq Gp)? x, ρ = q U p?.0+..x x q x, ρ = p U q? π, ρ = p U G(p q)? π, ρ = q U G(p q)? 0 p Specyfikownie i weryfikcj progrmy współieżne -46-
Grf przejść:.x dl x =.0+..x Przeieg π = x,.x, x, x,..., π = x,.x, x, 0 π = x, 0 ρ jk n rysunku x, ρ = G(p q)..x q.x p π, ρ = F(Fq Gp) π, ρ = F(Fq Gp) x, ρ = q U p x, ρ = p U q π, ρ = p U G(p q) π, ρ = q U G(p q).0+..x x q 0 p Specyfikownie i weryfikcj progrmy współieżne -47-
Spełnilność Dne: formuł Φ LTL Prolem: Czy istnieje P, t.ż. P = Φ? Twierdzenie Prolem spełnilności jest PSPACE-zupełny Specyfikownie i weryfikcj progrmy współieżne -48-
Model checking Dne: proces P formuł Φ LTL Prolem: Czy P = Φ? Twierdzenie Prolem model checkingu jest PSPACE-zupełny Specyfikownie i weryfikcj progrmy współieżne -49-
CTL logik czsu rozgłęzionego Wrcmy do HML i czsu rozgłęzionego Dl kżdego opertor temporlnego z LTL, np. dl F, rozwżmy dw wrinty AFΦ dl kżdej ścieżki kiedyś zjdzie Φ EFΦ dl pewnej ścieżki kiedyś zjdzie Φ Specyfikownie i weryfikcj progrmy współieżne -50-
CTL logik czsu rozgłęzionego Φ ::= tt prwd Φ Ψ koniunkcj Φ negcj Φ w jkimś -kroku możn osiągną Φ []Φ kżdy -krok prowdzi do Φ A Φ U Ψ n kżdej ścieżce kiedyś spełni się Ψ do tego czsu zchodzić ędzie Φ E Φ U Ψ n pewnej ścieżce kiedyś spełni się Ψ do tego czsu zchodzić ędzie Φ Specyfikownie i weryfikcj progrmy współieżne -51-
CTL logik czsu rozgłęzionego EFΦ AFΦ EGΦ AGΦ n pewnej ścieżce kiedyś spełni się Ψ n kżdej ścieżce kiedyś spełni się Ψ n pewnej ścieżce zwsze zchodzi Ψ n kżdej ścieżce zwsze zchodzi Ψ Powyższe są definiowlne przez Until: EFΦ E(ttUΦ) EGΦ EF Φ AFΦ A(ttUΦ) AGΦ AF Φ Specyfikownie i weryfikcj progrmy współieżne -52-
Semntyk CTL Nowe kluzule P = A Φ U Ψ P = E Φ U Ψ dl kżdej ścieżki P = P 0,P 1,...,P n P i = Ψ dl pewnego i orz P j = Φ dl j = 0,..., i 1 istnieje ścieżk P = P 0,P 1,...,P n tk, że P i = Ψ dl pewnego i orz P j = Φ dl j = 0,..., i 1 Specyfikownie i weryfikcj progrmy współieżne -53-
Wyrżlne włsności Bezpieczeństwo : AGΦ zł włsność Φ n żdnej śceiżce nigdy nie zjdzie Przykłdy: Wyklucznie: AG([cs1]ff [cs2]ff) System nigdy nie ędzie gotów do jednoczesnego wykonni kcji cs1 orz cs2 gwrncj wyłącznego korzystni z zsou przez procesy. Brk dedlocku: AG - tt System nigdy nie dojdzie do stnu pełnego zlokowni Specyfikownie i weryfikcj progrmy współieżne -54-
Wyrżlne włsności Żywotność : AFΦ dor włsność Φ n kżdej ścieżce kiedyś zjdzie Przykłdy: Gwrntown rekcj systemu: [req]af( serv tt) N kżde zgłoszenie żądni req proces kiedyś zreguje kcją osługi serv tegoż żądni Specyfikownie i weryfikcj progrmy współieżne -55-
Wyrżlne włsności Słe ezpieczeństwo EGΦ zł włsność Φ n pewnych ścieżkch nie zchodzi Sł żywotność EFΦ dor włsność Φ n pewnych ścieżkch kiedyś zjdzie Specyfikownie i weryfikcj progrmy współieżne -56-
Grf przejść:.x dl x =.0+..x x = AF(p q)? x = EF(p q)? x = AG(p q)?..x q.x p x = EG(p q)? x = EF[] tt? x = AF[] tt? x = EG[] tt?.0+..x x q x = EG( tt tt)? x = AG( tt tt)? 0 p x = AG( tt tt)? Specyfikownie i weryfikcj progrmy współieżne -57-
Grf przejść:.x dl x =.0+..x x = AF(p q) x = EF(p q) x = AG(p q) x = EG(p q) x = EF[] tt..x q.x p x = AF[] tt x = EG[] tt x = EG( tt tt) x = AG( tt tt) x = AG( tt tt).0+..x x q 0 p Specyfikownie i weryfikcj progrmy współieżne -58-
Spełnilność CTL Dne: formuł Φ CTL Prolem: Czy istnieje P, t.ż. P = Φ? Twierdzenie Prolem spełnilności jest EXPTIME-zupełny Specyfikownie i weryfikcj progrmy współieżne -59-
Model checking CTL Dne: skończony proces P formuł Φ CTL Prolem: Czy P = Φ? Twierdzenie Prolem model checkingu jest P-zupełny Specyfikownie i weryfikcj progrmy współieżne -60-
CTL z LTL są nieporównywlne EFAGp tzn., n pewnej scieżce kiedyś dojdziemy do sytucji, gdy kżd przyszł ewolucj zwsze gwrntowć ędzie p Nie d się wyrzić równowżną formułą LTL FGp od pewnego momentu n kżdej ścieżce gwrntowne jest p Nie d się wyrzić równowżną formułą CTL Specyfikownie i weryfikcj progrmy współieżne -61-
CTL* Zwier CTL orz LTL Formuły ścieżkowe orz stnowe Kwntyfiktory A i E zstosowne do formuły ścieżkowej dją formułę stnową. Specyfikownie i weryfikcj progrmy współieżne -62-
Spełnilność CTL* Dne: formuł Φ CTL* Prolem: Czy istnieje P, t.ż. P = Φ? Twierdzenie Prolem spełnilności jest 2EXPTIME-zupełny Specyfikownie i weryfikcj progrmy współieżne -63-
Model checking CTL* Dne: skończony proces P formuł Φ CTL* Prolem: Czy P = Φ? Twierdzenie Prolem model checkingu jest PSPACE-zupełny Specyfikownie i weryfikcj progrmy współieżne -64-