5. Ekvivlenssit j veriointi Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 1
5.1. Plvelun kuvukset Hjutetun järjestelmän prosessien kuvuksist voidn meknisesti generoid yhteistilverkko. Jos verkko on pienehkö, lle miljoon til, on mhdollist käydä verkko systemttisesti läpi j etsiä virheitä: Lukkiumi Eläviä lukkiumi (solmust ei ole polku perussykliin) On kuitenkin melko vike tällä tvoin löytää kikki virheitä. Millisi virheitä? Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 2
Snomi voi kdot, vikk ei jouduttisikn lukkiumiin Sm snom voidn luovutt kksi kert käyttäjälle Mitä voidn tehdä, jos verkko on liin suuri ti ääretön? Stunniskulku verkoss Jos spesiktioss on virhe, se yleensä esiintyy moness kohdss verkko (lomitussemntiikk!). Vikk solmuist käytäisiin läpi vin 5%, pljstuu kokemuksen mukn suurin os virheistä. Jos kuitenkin hlutn verioid spesiktio täydellisemmin, trvitn toisenlinen lähestymistp. Prosessilgebrojen yhteydessä tvllisimmin käytetään ekvivlensseihin j Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 3
temporlilogiikkn perustuvi veriointimenetelmiä. Käsittelemme tällä kurssill lähinnä ekvivlenssimenetelmää. Ekvivlenssiin perustuvss verioinniss keskeinen käsite on plvelun kuvus. Tällä trkoitetn siirtymäsysteemiä, jok kuv sitä plvelu, jonk protokoll nt käyttäjälle (ympäristölle, hvitsijlle). Esimerkki: AB-protokoln plvelunkuvus AB-protokoll trjo tiedonsiirtoplvelun. Protokoll ott vst dtpkettej ympäristöltä (ylemmältä kerrokselt) get-snomss j välittää ne vstnottvlle ospuolelle (ylempi kerros, ympäristö) give-snomll. Miten AB-protokolln plvelu voidn kuvt? AB_P1 get AB_P2 give Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 4
Ekvivlenssiin perustuvss verioinniss verrtn nyt vrsinisen AB-protokolln yhteistilverkko plvelukuvuksen verkkoon. Jos ne ovt tietyssä mielessä smoj, AB-protokoll voidn pitää oiken, ts. se tekee sen, mitä sen odotetn tekevän. Verkkojen vertiluss täytyy selvästikin bstrhoid jomp kump ti molempi verkkoj. Ekvivlenssin määrittelyssä päätetään, millä trkkuustsoll verkkoj vertilln. Esimerkki: Asiks/plvelin-systeeminä Trkstelln sellist siks/plvelin-systeemiä, joss sikkit on 4. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 5
Asiks C i siirtymäsysteeminä (Alkutil on C1 pitsi C 1 :ssä C2): t(i+1) C4 bci C1 ti C2 csi C3 bci C5 t(i+1) Plveluprosessi S j puskuriprosessi B i : S1 cs1 sb1 sbn cs2 Sn S0 S2.. csn sb3. S3 cs3 sb2 B1 sbi bci B2 Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 6
Millinen on koko systeemiä vst rinnkkisoperttorin vull nnettu prosessiluseke? SystemRR := Server [cs1, sb1, cs2, sb2, cs3, sb3, cs4, sb4] ((Client1 [bc1] Buffer1 ) [t1, t2] ((Client2 [bc2] Buffer2 ) [t3] ((Client3 [bc3] Buffer3 ) [t4] (Client4 [bc4] Buffer4 )))) Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 7
Oletetn nyt, että meitä kiinnost round robin- peritteen toteutuminen systeemissä. Perite toteutuu, jos ti:t tphtuvt järjestyksessä t2, t3, t4, t1. Millinen prosessi kuv round robin- peritett? t1 t2 t3 t4 RR1 RR2 RR3 RR4 Voisimme nyt generoid prosessin SystemRR yhteistilverkon j selvittää, tphtuvtko ti:t minituss järjestyksessä. Jos emme hlu tutki verkko käsin, meidän pitäisi kirjoitt ohjelm, jok selvittäisi sin. Tähän kuluisi ik. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 8
Nopempi menetelmä on verrt prosessi SystemRR prosessiin RR. Siis round robin- perite toteutuu systeemissä, jos prosessin SystemRR toimint sopivsti bstrhoitun vst prosessin RR toimint. Tässä tpuksess sopiv bstrktio on sellinen, että muutetn kikki muut tphtumt näkymättömiksi tphtumiksi τ lukuunottmtt tphtumi t1, t2, t3 j t4. Jos tämän muutoksen jälkeen kuljetn polkuj prosessin SystemRR yhteistilverkoss, niin tphtumien ti tulisi esiintyä poluill RR:n järjestyksessä, eikä muit näkyviä tphtumi esiinnny linkn. Prosessilgebrojen vhvn puolen on, että voidn määritellä täsmällisesti useit eri trkoituksiin soveltuvi ekvivlenssej, jotk voidn tehokksti lske prosessilgebrllisesti määritellyille prosesseille. Yksinkertisin ekvivlenssi suoritusjälkiekvivlenssi. Eräs perustvimmist ekvivlensseist on heikko bisimultioekvivlenssi, jok riittää useimpiin trkoituksiin. Se on tehokksti lskettviss j se on yleensä toteutettu kikiss yleiskäyttöisissä veriointiohjelmistoiss. Käsittelemme tällä kurssill pelkästään näitä Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 9
ekvivlenssej. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 10
5.2. Reltiot Reltion määritelmä Olkoon A j B joukkoj. Jokist joukko R A B snotn reltioksi joukost A joukkoon B. Joukko M R = { x A y B siten että (x, y) R } on reltion R määrittelyjoukko j joukko A R = { y B x A siten että (x, y) R } sen rvojoukko. Jos R A A, toisin snoen jos R on reltio joukost A joukkoon A, niin snotn lyhyemmin, että R on joukon A reltio. Jos R on joukon A reltio j jos (x, y) R, niin yleensä merkitään xry. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 11
Ekvivlenssireltiot Määritellään ensin muutmi käsitteitä, joist on hyötyä ekvivlenssireltion käsittelyssä. Joukot A j B ovt lkioviert, jos A B =. Jos I on joukko, jonk lkiot ovt joukkoj, niin I on lkioviers, jos kksi joukkoon I kuuluv joukko ovt in lkioviert. Joukon X osjoukkojoukko H on joukon X ositus, jos se täyttää seurvt ehdot: H1. Jokinen A H on epätyhjä, H2. H:n joukkojen yhdiste on X, H3. H on lkioviers. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 12
Osituksell on läheinen yhteys ekvivlenssireltioon, jok määritellään seurvss. Määritelmä 1. Joukon X reltio R on ekvivlenssi, jos se täyttää seurvt ehdot: E1. R jokisell X (reeksiivisyys); E2. jos Rb, niin myös br (symmetrisyys); E3. jos Rb j brc, niin myös Rc (trnsitiivisuus). Jos X, niin joukko R() = {x X Rx} on lkion ekvivlenssiluokk ekvivlenssin R suhteen. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 13
Luse. Jos R on joukon X ekvivlenssi, niin sen kikkien eri ekvivlenssiluokkien joukko X/R on joukon X ositus. Joukon X lkioille j b on Rb in j vin kun j b kuuluvt smn ekvivlenssiluokkn. Todistus. Olkoon X. Kosk R, niin R(). Tästä seur, että jokinen ekvivlenssiluokk on epätyhjä j että ekvivlenssiluokkien yhdiste on X. Ehdon H3 osoittmiseksi riittää näyttää, että kksi nnettu R-ekvivlenssiluokk ovt joko identtiset ti lkioviert. Oletetn sitä vrten, että R() R(b), jolloin on olemss lkio c R() R(b). Olkoon x R() eli Rx. Kosk c R(), niin Rc j siis myös cr, sillä ekvivlenssireltio on symmetrinen. Kosk cr j Rx, niin trnsitiivisuuden perusteell crx. Kosk c R(b), on toislt brc. Stu tulos osoitt, että R() R(b). Täsmälleen smll tvll nähdään, että R(b) R(). Näinollen R() = R(b) j kikkien R-ekvivlenssiluokkien joukko on siis joukon X ositus. Olkoon Rb. Tällöin b R(), joten j b kuuluvt smn ekvivlenssiluokkn R(). Oletetn kääntäen, että j b kuuluvt smn ekvivlenssiluokkn R(c). Tällöin R(c) R() j siis R(c) R(), joten luseen lkuosn nojll R(c) = R(). Tästä seur, että b R(c) = R() eli Rb. Myös jälkimmäinen väite on siten oike. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 14
Luse. Olkoon H joukon X ositus. Jos joukon X lkioille setetn R H b in j vin kun j b kuuluvt smn joukkoon U H, niin R H on sellinen joukon X ekvivlenssi, että kikkien R H -ekvivlenssiluokkien joukko on H. Todistus. Olkoon X. Kosk H on joukon X ositus, on olemss joukko U H, joll U. Nyt j kuuluvt smn osituksen joukkoon U, joten R H. Eli reeksiivisyys on osoitettu. Olkoon R H b. Tällöin j b kuuluvt smn joukkoon U H j siis myös br H. Eli symmetrisyys on osoitettu. Olkoon sitten R H b j br H c. Tällöin on olemss selliset joukot U j V H, että j b U sekä b j c V. Kosk v U V, on U V j siis U = V, kosk H on lkioviers. Näinollen j c kuuluvt smn joukkoon U = V H, joten R H c. Trnsitiivisuus on siten osoitettu j R H on siis ekvivlenssireltio. Olkoon R H () mielivltinen R H -ekvivlenssiluokk. Kosk H:n joukkojen yhdiste on X, on olemss sellinen U H että U. Jos x U, niin j x kuuluvt smn joukkoon U H, joten R H x eli x R H (). Olkoon kääntäen x R H () eli R H x. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 15
Tällöin j x kuuluvt smn joukkoon V H. Kosk U V, on U V j siis U = V, kosk H on lkioviers. Näinollen x V = U. Sdut tulokset osoittvt, että R H () = U. Kääntäen, jos U H, niin U. Jos U, niin edellisen tuloksen nojll R H () H. Kosk R H () U, niin on siis U = R H (). Näinollen yhtyy kikkien R H -ekvivlenssiluokkien joukko joukkoon H. Trnsitiivinen sulkeum Olkoon R reltio joukoss V. Reltion potenssit määritellään seurvsti: R 0 = {(, ) V }, R 1 = R, R 2 = {(, c) b V : Rb j brc}, R n = R(R n 1 ), n > 2. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 16
Trnsitiivinen sulkeum määritellään nyt reltion potenssien vull. Reltion R reeksiivinen trnsitiivinen sulkeum R on joukko R = i=0 R i, j trnsitiivinen sulkeum R + on joukko R + = i=1 R i. Purkmll uki määritelmiä nähdään, että R b, jos on olemss V :n lkiot = c 1, c 2,, c n = b, joill c i Rc i+1, i = 1,, n 1. Reltio R joukoss V voidn esittää suorviivisesti suunnttun verkkon: verkon solmujoukko on V jos Rb, niin (, b) on verkon kri. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 17
Millinen hvinnollinen tulkint verkoss on trnsitiivisell sulkeumll? Nimittäin R + trkoitt kikki sellisi prej (, b) V V, että :st on polku b:hen verkoss R. Vstvsti R on R + lisättynä krill jokisest solmust solmuun itseensä. Trnsitiivisen sulkeumn lskentongelm:on nnettu reltio R verkkon. Lske R + ti R verkkon. Reltion verkkoesitys voi perustu joko vierusmtriisiin ti vieruslistn. Trkstelln ensin vierusmtriisiesitystä. Eräs prhiten tunnettuj trnsitiivisen sulkeumn lskent-lgoritmej on Wrshllin lgoritmi. Siinä oletetn, että reltio on nnettu n n-vierusmtriisin M. Algoritmiss muodostetn mtriisi C, jok kuv trnsitiivist sulkeum. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 18
Wrshll(M) begin 1. C := M; 2. for i := 1 to n do C[i,i] := true; end for; // rivi 2 jää pois, jos lsketn vin trnsitiivist sulkeum. 3. for k := 1 to n do 4. for i := 1 to n do 5. for j := 1 to n do 6. if C[i,k] = true j C[k,j] = true then C[i,j] := true; end if; end for; end for; end for; end. Luse 1. vtii jn O(n 3 ) j tiln O(n 2 ). Wrshllin lgoritmi lskee oikein reeksiivisen trnsitiivisen sulkeumn j Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 19
Miksi vierusmtriisiesitys ei ole yleensä järkevä vlint? Moniss sovelluksiss verkko on vrsin suuri j hrv. Miten trnsitiivinen sulkeum lsketn vieruslistesityksen perusteell? Aloitetn syvyyssuuntinen etsintä verkon jokisest solmust j vedetään kri loitussolmust jokiseen svutettvn solmuun. Tällisen menetelmän ikvtimus on O( V ( E + V )) eli sm kuin Wrshllin lgoritmiss, jos verkko on lähes täydellinen ( E = V 2 ). Mikä hidst tätä lähestymistp? Ongelmn tässä yksinkertisess lähestymistvss on se, että smoj reittejä stetn kulke moneen kertn. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 20
Tehokkmpn tulokseen päästään, jos vhvsti yhtenäiset komponentit otetn huomioon. Komponentin sisällä trnsitiivisen sulkeumn kret ovt jokisen solmuprin välillä. Sen jälkeen trvitsee tutki kret komponenttien välillä. Ide on suorviivinen, mutt tähän iden perustuvt lgoritmit näyttävät olevn melko monimutkisi. Yhtenä syynä on, että vhvsti yhtenäisten komponenttien etsintälgoritmi on monimutkinen, erityisesti oikeellisuustodistuksens oslt. Tällä kurssill nämä kehittyneemmät sulkeum-lgoritmit sivuutetn. Minitn vin muutmien lgoritmien viitteet: Eve j Kurki-Suonio, On computing the trnsitive closure of reltion. Act Informtic 8, 303-314, 1977. Eräs ensimmäisiä sulkeum-lgoritmej, joiss on sovellettu vhvsti yhtenäisiä komponenttej. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 21
Nuutil, An ecient trnsitive closure lgorithm for cyclic digrphs. Informtion Processing Letters 52, 207-213, 1994. Esimerkki uudemmst sulkeumtutkimuksest. Sippu, Soislon-Soininen, Prsing Theory, 37-60, Springer-Verlg 1988. Kirjtson esitys tehokkst sulkeum-lgoritmist. Trnsitiivisen sulkeumn lskeminen etukäteen ei in ole välttämätöntä, vikk sovelluksess sulkeum trvittisiinkin. Joisskin tilnteiss sulkeum voidn lske lennost (on the y). Tämä trkoitt, että kun trvitn sulkeumn kri jostin solmust, käynnistetään syvyyssuuntinen etsintä tuost solmust j etsitään kikki trvittvt polut. Stt vikutt, että menetelmä on käyttökelvoton, vrsinkin jos joudutn käynnistämään etsintä smst solmust moneen kertn. Kuitenkin on sovelluksi, joiss tämä lähestymistp joht jop prempn tulokseen kuin sulkeumn lskeminen ennkolt. Konkreettisess tilnteess on siten nlysoitv huolellisesti, mikä lähestymistp on tehokkin. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 22
5.3. Suoritusjälkiekvivlenssi Yksinkertisin ekvivlenssi perustuu tphtumjonojen vertiluun. Olkoon A tphtumien joukko. Seurvss oletetn, että kikkien prosessien tphtumt kuuluvt tähän joukkoon. Määritelmä 2. Olkoon u (A\{τ}) tphtumjono. Jono u on prosessin P suori- = P jollkin prosessill P. Merkitään P :n kikkien suoritusjälkien tusjälki (trce), jos P u joukko symbolill tr(p ). Määritelmä 3. Prosessit P j Q ovt suoritusjälkiekvivlentit, P tr Q, jos tr(p ) = tr(q). Selvästi tr on ekvivlenssireltio. Se on myös kompositionlinen rinnkkisoperttorin suhteen. Eli jos P tr P j Q tr Q, niin P [ 1,, n ] Q tr P [ 1,, n ] Q (hrjoitustehtävä). Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 23
Jos P tr Q, niin P :ssä voi oll lukkiumi, vikk Q:ss ei niitä olisikn. Esimerkiksi prosessit P j Q ll ovt suoritusjälkiekvivlentit: P1 P2 b P3 b Q1 Q2 Q3 P4 c c Yleensä jtelln, että lukkiumt ovt kikkein vkvimpi virheitä hjutetuiss järjestelmissä. Tämän vuoksi suoritusjälkiekvivlenssi hrvoin tulee kysymykseen inon perusteen vertill protokoll j plvelu. Suoritusjälkiekvivlenssi pljst kuitenkin melko tehokksti muit virhetyyppejä. Lisäksi lukkiumt on helppo trkist jo verkon generoinnin yhteydessä. Siten suoritusjälkiekvivlenssi voidn käyttää hyväksi silloin tällöin. Tulemme soveltmn sitä tutkiessmme erilisi rtkisuj keskinäisen poissulkemisen ongelmn. Edel- Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 24
leeen suoritusjälkiekvivlenssi toimii lähtökohtn kokoniselle ekvivlenssiryhmälle, johon kuuluvt mm. testi- j estymäekvivlenssit. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 25
5.4. Heikko bisimultioekvivlenssi Tvoitteen on määritellä veriointiin sopiv ekvivlenssireltio siirtymäsysteemien joukkoon. Bisimultioekvivlenssi on Milnerin kehittelemä j Prkin viimeistelemä ekvivlenssi 70- j 80-lukujen vihteest. Jos P j Q ovt prosessej, niin ekvivlenssin iden on simuloid P :n näkyvien tphtumien suoritust Q:ss j päinvstoin. Jos simulointi onnistuu koko jn, prosessit ovt ekvivlenttej, muuten eivät. Täsmälliseen määritelmään trvitn pukäsitteitä. Olkoon tphtum, τ. Plutetn mieleen merkintä, että P = P, jos on olemss siirtymäketju τ P = P 1 P 2 P k τ τ τ τ P k+1 P k+2 P k+3 τ τ P k+m = P, k 1, m 0. Toisin snoen P = P, jos on olemss polku P :n lkutilst P :n lkutiln j yksi polun krist sisältää toiminon, muut, 0 ti usempi kri, τ :n. Voidn myös kirjoitt P ε = P Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 26
jos P = P ti on olemss τ -siirtymien ketju τ τ τ P = P 1 P 2 P k = P, k > 1. Merkinnästä P = P käytetään myös nimitystä heikko -siirtymä. P1 τ P2 P3 τ P6 b b τ P4 P5 P7 Esimerkki. Trkstelln yllä olev tilsiirtymäsysteemiä Sen tilst P 1 on mm. seurvt heikot siirtymät: P 1 ε = P 6, P 1 = P 2, P 1 = P 5, P 1 = P 7, P 1 b = P 7, P 1 ε = P 3, P 1 ε = P 1. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 27
Määritelmä. Olkoot P j Q prosessej j A P :n j Q:n toimintojen joukko. Prosessit P j Q ovt heikosti bisimilriset, P wbis Q, jos on olemss sellinen prosessipreist koostuv joukko R (heikko bisimultio), että kikill toiminnoill (A\{τ}) {ε} pätee: 1. (P, Q) R; 2. jos (P 1, Q 1 ) R j P 1 = P 2, niin on olemss Q 2, joll Q 1 = Q 2 j (P 2, Q 2 ) R; 3. jos (P 1, Q 1 ) R j Q 1 = Q 2, niin on olemss P 2, joll P 1 = P 2 j (P 2, Q 2 ) R. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 28
Esimerkki. Ovtko seurvt Prosessit heikosti bisimilriset P wbis Q? P1 b P2 P3 τ Q2 b Q1 Q3 b P4 b Prosessit ovt heikosti bisimilriset sillä R = {(P 1, Q1), (P 2, Q2), (P 3, Q3), (P 4, Q1)} on heikko bisimultio j (P, Q) R (P = P 1, Q = Q1). Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 29
Esimerkki. Ovtko seurvt prosessit heikosti bisimilriset? P1 b Q1 τ P2 P3 Q4 Q2 b Q3 Prosessit eivät ole heikosti bisimilriset. Jos nimittäin yritetään muodost heikko bisimultioreltio R, niin prin (P 1, Q1) täytyy kuulu reltioon. Käytetään seurvksi määritelmän ehto 3: Q tekee siirtymän tilst Q1 tiln Q2 sisäisellä tphtumll. Aino tp simuloid tätä P :n oslt on, että P pysyy tilss P 1. Siis prin (P 1, Q2) tulee kuulu myös reltioon R. Käytetään tämän jälkeen priin (P 1, Q2) määritelmän ehto 2: P siirtyy P 1:stä :ll P 2:een. Nytpä Q ei voikn simuloid tätä siirtymää, sillä Q2:st ei lähde yhtään -siirtymää. Siis heikko bisimultioreltiot ei voi oll olemss P :n j Q:n välillä, joten prosessit eivät ole heikosti bisimilriset. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 30
Esimerkki. Ovtko seurvt prosessit heikosti bisimilriset? P3 P5 b c P1 P2 τ P4 τ P6 d P7 Q5 Q7 b c Q2 τ Q6 τ Q8 d Q9 Q1 Q3 Q4 c τ d Q10 Q11 Q13 d Q12 Prosessit ovt heikosti bisimilriset j heikko bisimultio on seurv (P 1, Q1), (P 2, Q2), (P 4, Q3), (P 6, Q4), (P 3, Q5), (P 4, Q6), (P 5, Q7), (P 6, Q8), (P 7, Q9) (P 5, Q10), (P 6, Q11), (P 7, Q12), (P 7, Q13) Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 31
Luse. Reltio wbis on ekvivlenssireltio siirtymäsysteemien välillä. Todistus. On osoitettv, että reltio wbis on reeksiivinen, symmetrinen j trnsitiivinen. Reeksiivisuus trkoitt, että P wbis P kikill prosesseill P. Symmetrisyys trkoitt, että ehdost P wbis Q seur Q wbis P. Sekä reeksiivisuus että symmetrisyys seurvt suorn määritelmästä. On vielä näytettävä, että reltio on trnsitiivinen eli ehdoist P wbis Q j Q wbis R seur P wbis R. Olkoon R bisimultio P :n j Q:n välillä, S bisimultio Q:n j R:n välillä. Muodostetn prosessiprien joukko T seurvsti: T = {(P 1, R 1 ) Q 1 : (P 1, Q 1 ) R, (Q 1, R 1 ) S}. Osoitetn, että T on heikko bisimultio P :n j R:n välillä. T :n määritelmän perusteell (P, R) T. Olkoon (P 1, R 1 ) T mielivltinen j P 1 = P 2. Tiedetään, että on olemss Q 1, joll (P 1, Q 1 ) R j (Q 1, R 1 ) S. Kosk R j S ovt heikkoj Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 32
bisimultioit, on olemss myös prosessit Q 2 j R 2, joill Q 1 = Q 2 j (P 2, Q 2 ) R = R 2 j (Q 2, R 2 ) S. Mutt T :n määritelmän nojll (P 2, R 2 ) T, joten sekä R 1 ehto 2 heikon bisimultion määritelmässä on osoitettu. Ehto 3 osoitetn smll tvll. Merkitään P:llä prosessien eli äärellisten siirtymäsysteemien joukko. Reltio wbis määrittelee siis P:hen ekvivlenssireltion. Mtemtiikss joukon ekvivlenssireltio määritellään joukon krteesisen tulon itsensä knss osjoukkon. Siten tpuksessmme pitäisi oll wbis P P. Voidnkin määritellä, että wbis on mksimlinen bisimultio eli wbis = {R R on bisimultio}. Jos P on prosessi, niin P :n ekvivlenssiluokk [P ] wbis on niiden prosessien joukko, jotk ovt heikosti bisimilriset P :n knss. Ekvivlenssiluokt [P ] wbis muodostvt P:n Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 33
Minimiprosessi Jos P on siirtymäsysteemi (S, A,, s 0 ), niin jokist til s S voidn myös pitää siirtymäsysteeminä, jok on muuten sm kuin P pitsi että lkutiln on s. Voimme nyt rjoitt ekvivlenssin wbis joukkoon S S. Tällöin wbis on ekvivlenssireltio joukoss S j se jk S:n ekvivlenssiluokkiin. Voimme nyt muodost uuden siirtymäsysteemin, jonk tiloin ovt kyseiset ekvivlenssiluokt. Ekvivlenssiluokst on siirtymä :ll johonkin toiseen ekvivlenssiluokkn, jos luokn jostin tilst on siirtymä :ll toisen luokn johonkin tiln lkuperäisessä siirtymäsysteemissä. Näin stu siirtymäsysteemi on tilojen suhteen minimlinen niiden siirtymäsysteemien joukoss, jotk ovt heikosti bisimilrisi lkuperäisen siirtymäsysteemin knss. Esimerkiksi seurvt prosessit ovt ekvivlenttej j jälkimmäinen on minimlinen. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 34
P: τ P1 P2 P3 b P4 τ P5 τ τ τ τ P6 τ P7 P_min: τ τ P1 P2 P3 τ b Edellä olevss esimerkissä prosessin P tilojen ekvivlenssijoukot ovt E 1 = {P 1, P 5}, E 2 = {P 2, P 4, P 6, P 7} j E 3 = {P 3}. Piirtämällä kikki kret meknisesti ekvivlenssiluokst toiseen joht helposti tilnteeseen, joss on pljon turhi kri. Krten minimointi on monimutkisemp kuin tilojen minimointi. Asi on käsitelty 90-luvull Jn Elornnn väitöskirjss j rtikkeliss Elornt, Tienri, Vlmri: Essentil Trnsitions To Bisimultion Equivlences, Theoreticl Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 35
Computer Science 179 (1997) 397-419. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 36
Heikko bisimilrisuus j rinnkkisoperttori Heikko bisimultioekvivlenssi käyttäytyy hyvin rinnkkisoperttorin suhteen. Luse. Jos P wbis Q, niin P B R wbis Q B R kikill toimintojoukoill B j prosesseill R. Todistus. Olkoon R = {(P 1 B P 3, P 2 B P 3 ) P 1 wbis P 2 }. Osoitetn, että R on heikko bisimultio P B R:n j Q B R:n välillä. Kosk P wbis Q, pätee (P B R, Q B R) R. Olkoon P B R= P B R. Joudutn trkstelemn kht tpust. i) B. Nyt i j P = P, R= R. Kosk P wbis Q, on olemss bisimultio E P :n j Q:n välillä. Tällöin tiedetään heikon bisimultion määritelmän nojll, että on olemss sellinen Q, että Q= Q j (P, Q ) E. Siis myös P wbis Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 37
Q. Suorn nähdään, että Q B R = Q B R. Nyt R:n määritelmän perusteell (P B R, Q B R ) R. ii) B. Nyt joko P = P j R= R ti P = P j R= R. Huom, että voi oll ε. Jos P = P, niin myös Q= Q j P wbis Q, kuten nähtiin edellisessä kohdss. Siten Q B R= Q B R j (P B R, Q B R ) R. Jos ts R= R, P = P, niin myös tällöin on olemss Q, joll Q= Q j P wbis Q. Edelleen Q B R= Q B R. Myös nyt pätee (P B R, Q B R ) R. Siis R täyttää heikon bisimultion ehdot P B R:n siirtymien oslt. Smll tvll osoitetn Q B R:n siirtymien tpus j R:n mielivltisen lkion siirtymien tpus. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 38
5.5. Heikon bisimultion lskeminen Seurvss esitettävä lgoritmi lskee siirtymäsysteemin tilojen ekvivlenssijoukon. Algoritmi voidn käyttää myös khden erillisen prosessin P j Q ekvivlenssivertiluun. Nimittäin muodostetn yksi prosessi ottmll käyttöön uusi lkutil, jost vedetään τ - siirtymät P :n j Q:n lkutiloihin. Sen jälkeen lsketn, ovtko tässä prosessiss tilt P j Q ekvivlenttej. Jos ovt, ovt tietenkin myös vstvt prosessit ekvivlenttej. Heikon bisimultioekvivlenssin lskemist hllitsee jllisesti reltioiden = lskeminen. Yhden reltion = lskeminen on lähes sm si kuin sen liverkon trnsitiivisen sulkeumn lskeminen, jok koostuu pelkästään -krist. Tämähän vie phimmss tpuksess ik lähes O(n 3 ), missä n on tilojen lukumäärä. Käytännössä on osoittutunut, ettei tässä tpuksess knnt lske trnsitiivisi sulkeumi etukäteen, vn -polkuj etsitään trpeen mukn. Seurvss lgoritmiss ei kuitenkn otet knt, miten reltiot = määrätään. Esitämme lgoritmist yksinkertisemmn version. Monimutkisempi tietorkenteit soveltmll sdn ikn peritteess hiemn tehokkmpi lgoritmi, mutt trnsitiivisten sulkeumien lskeminen syö hyödystä suuren osn pois. Algoritmi perustuu Pigen j Trjnin rtikkeliin Three prtition renement lgorithms, Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 39
SIAM J. Computing 16 (6), 1987. Fernndezin rtikkeli An implementtion of n ecient lgorithm for bisimultion equivlence, Science of Computer Progrmming 13: 219-236, 1989, on prs esitys lgoritmin sovelluksest bisimultioekvivlenssin lskentn. Olkoon P = (S, A, T, s 0 ) siirtymäsysteemi. Algoritmiss lsketn tiljoukon S ositus ρ, jok edust lgoritmin loputtu ekvivlenssiluokki. Toisin snoen ekvivlenssiluokss olevt tilt ovt keskenään ekvivlenttej j ne voidn smst esimerkiksi minimiverkko muodostettess. Aluss ρ koostuu yhdestä joukost, tiljoukost S. Jos B on S:n osjoukko j toiminto, niin lgoritmiss käytetään merkintää T 1 [B] = {s S s= s, s B}. Merkintä I 1,2,B trkoitt joukkokokoelm {X T 1 [B] X I,B } {X \ T 1 [B] X I,B } j riveillä 4-9 lsketn operttorin Φ rvo Φ(ρ, ρ), jok määritellään seurvsti. Olkoon ρ = {B 1,, B n } perhe S:n osjoukkoj j ρ S:n ositus. Määritellään Φ(ρ, ρ) = (Φ B1 Φ Bn )(ρ), Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 40
missä Φ B = Φ 1,B Φ n,b, jos 1,, n ovt A:n lkioit, j Φ,B (ρ) = {X T 1 [B] X ρ} {X \ T 1 [B] X ρ}. Algoritmi lskee kuvuksen Φ(ρ) = Φ(ρ, ρ) mksimlisen kiintopisteen j se osoittutuu olevn mksimlinen bisimultio. Fernndezin esittämä lgoritmin oikeellisuustodistus on pitkällinen, mutt smll elegntti. Se on esitetty myös Aro Hllikisen pro grdu -tutkielmss vuodelt 1994. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 41
Algoritmi: Heikko bisimilrisuus. Input: Äärellinen prosessi P = (S, A, T, s 0 ). Output: S:n ositus ρ; se edust ekvivlenttej tiloj. 1. begin 2. W := {S}; ρ := {S}; 3. repet 4. choose nd remove ny B W ; 5. for ech ((A \ {τ}) {ε}) do 6. I,B := {X ρ X T 1 [B], X T 1 [B]}; 7. I 1,2,B 1 := {X T [B] X I,B } {X \ T 1 [B] X I,B }; 8. ρ := (ρ \ I,B ) I 1,2,B ; 9. W := (W \ I,B ) I 1,2,B ; 10. endfor; 11. until W = ; 12. end. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 42
Esimerkki. Sovelletn lgoritmi seurvn siirtymäsysteemiin: 0 1 2 b b b b 3 c 5 c 4 Aluss ρ = {{0, 1, 2, 3, 4, 5}}, W = {{0, 1, 2, 3, 4, 5}}. Sitten B = {0, 1, 2, 3, 4, 5} T 1 [B] = {0, 1, 2} I,B = {{0, 1, 2, 3, 4, 5}} I 1,2,B = {{0, 1, 2}, {3, 4, 5}} ρ = {{0, 1, 2}, {3, 4, 5}} Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 43
W = {{0, 1, 2}, {3, 4, 5}} T 1 b [B] = {0, 1, 2} I b,b = I 1,2 b,b = ρ = sm W = sm T 1 c [B] = {3, 4} I c,b = {{3, 4, 5}} I 1,2 c,b = {{3, 4}, {5}} ρ = {{0, 1, 2}, {3, 4}, {5}} W = {{0, 1, 2}, {3, 4}, {5}} Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 44
Tämän jälkeen ρ ei enää muutu, mutt lgoritmi tutkii siitä huolimtt vielä W :n joukot jokisell kolmell toiminnoll. Tehokkmmss versioss lgoritmi os rjt tutkittvi joukkoj premmin. Huomttkoon, että joukkojen T 1 [B] lskeminen stt τ -siirtymien muknolless vti pitkien polkujen tutkimist. Edellä olevss esimerkissä ei yksinkertisuuden vuoksi τ -siirtymiä ollut linkn. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 45
5.6. Esimerkkejä Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 46
5.6.1. AB-protokoll Trkstelln AB-protokolln versiot, joss on mukn snomt get j give. Tämä protokoll trjo ympäristölle plvelun, jok on yksinkertisesti kuvttviss: P1 give get P2 Sovelletn nyt edellä esitettyä heikko bisimultioekvivlenssi protokolln oikeellisuuden trkistmiseen. On siis näytettävä, että AB-protokolln yhteistilverkko on ekvivlentti plveluverkon knss. Selvästikään tämä ei pidä pikkns, ellei protokolln yhteistilverkko muutet hiemn. Tvllisesti joitkin toimintoj kätketään eli muutetn τ -siirtymiksi. Tätä vrten määrittelemme opertion hide: hide 1, 2,..., n in P muutt siirtymäverkko P siten, että kikki toiminnot i, i = 1,, n, P :ssä korvtn τ :ll. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 47
Nyt AB-protokolln veriointiprobleem muodost lusu seurvss muodoss. On osoitettv, että hide wbis d0, dd0, d1, dd1, 0, 0, 1, 1, st, rt, t in AB-protokoll AB-plvelu. AB-protokolln yhteistilverkko on sen verrn suuri, että sen käsittely vtii ohjelmisto. Veriointi ohjelmisto käyttäen tphtuu kirjoittmll sekä itse protokoll että plvelu ohjelmiston tukemll spesiointikielellä, kääntämällä spesiktiot siirtymäsysteemiksi j käynnistämällä ohjelm, jok lskee, ovtko siirtymäsysteemit ekvivlenttej. Teemme tämän verioinnin myöhemmin Lotoksen yhteydessä. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 48
5.6.2. FE-protokoll Vrhisess protokollkirjllisuudess (W. C. Lynch: Relible full-duplex trnsmission over hlf-duplex lines, Comm. ACM, Vol. 11, No. 6, pp 362-372, June 1968) on kuvttu eräs virheellisesti toimiv protokoll, jok on ollut iknn todellisess tuotntokäytössä. Tämän protokolln virhetilnteet esiintyvät niin hrvoin, ettei sen puutteellisuutt hvittu ohjelmisto testttess, vikkkin virheitä sittemmin ilmeni tuotntokäytössä. Tämä virheellinen protokoll on mielenkiintoinen j opettvinen esimerkki nlysoitvksi. Virheellinen esimerkkiprotokollmme, lyhyesti FE-protokoll, on symmetrinen yhteystson protokoll. Kksi prtneri S j R vihtvt siinä vuorotellen snomi virhelttiin vuorosuuntisen knvn välityksellä. Prtnerit lisäävät kuhunkin lähettämäänsä snomn kuittusbitin ("ACK", positiivinen kuittus) kertokseen edellisen snomn spuneen virheettömänä. Kuittusbitiksi setetn n ("NAK", negtiivinen kuittus), jos edellinen spuv snom oli vääristynyt knvss. Kummnkin prtnerin lähetyslogiikk on seurv: Jos edellinen spuv snom sisälsi negtiivisen kuittuksen ti se osoittutui vääristyneeksi (jolloin vstliikenteen NAK on Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 49
ehkä tuhoutunut), käsillä olev snom lähetetään uudelleen. Muutoin lähetetään seurv snom. Molemmiss tpuksiss spuvn liikenteen edellisen snomn sinmukinen kuittusbitti, ACK ti NAK, lisätään lähtevään snomn. Protokolln vstnottologiikk ei nnet eksplisiittisesti Lynchin rtikkeliss, joss lähinnä vin osoitetn mhdottomksi suunnitell toimintvrm vstnottologiikk edellä esitetylle lähetysmeknismille. Eräs mhdollinen vstnottologiikk, jonk otmme käyttöön FE-protokollssmme, on seurv: Kun snom spuu virheettömänä j sisältää ACK:in se toimitetn kohdeprosessille. Jos snom sisältää NAK:in, snom hylätään (spuvn snomn rvelln olevn uudelleenlähetys). Mllinnmme luksi protokolln yksinkertistetuss muodoss. Jos protokoll toimii virheellisesti siinä muodoss, se toimii virheellisesti täydellisenäkin. Jos ts yksinkertistettu versio toimii oikein, on trpeen tutki vielä täydellinen versiokin. Yksinkertistetuss versioss kommunikoointi on synkronist, erillisiä knvi ei käytetä. Dtn välitys tphtuu pelkästään S:ltä R:lle. Kun dtsnomn d liitetään vstliikenteen ACK ti NAK, sdn dtsnom d ti dn. R lähettää vin kuittuksen ti n. Snomnimet de j e trkoittvt vääristynyttä dt- j kuittussnom. Siirtymäverkot S j R on nnettu ll: Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 50
S1 R1 get d give S2 R2 n d de dn e S3 R3 n e R4 dn de e de S4 Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 51
Yhteistilverkko on seurvss kuvss: S1R3 get S2R3 d S3R1 give S3R2 de n e dn S3R4 de e S4R3 Siitä nähdään protokolln perussykli S1R3 get S2R3 d S3R1 give S3R2 jok kuv snomnvälitystä linjn toimiess virheettömästi. Yksittäisestä linjvirheestä protokoll toipuu pienen sivureitin kutt: S2R3 de S3R4 n S2R3 Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 52
ti S3R2 e S4R3 dn S3R2 Khden peräkkäisen snomn vääristyminen linjll voi iheutt virhetoiminnon FEprotokollss. Tämän näemme seurvss mhdollisess yhteistilverkon reitissä: S1R3 S2R3 get S3R4 de S4R3 e S3R2 dn S1R3 S2R3 get S3R1 d S3R2 give Tässä toimintreitissä otetn kksi snom lähetettäviksi, mutt vin jälkimmäinen toimitetn perille. Protokoll voi siis hukt snomn. Seurv yhteistilreitti pljst puolestn tilnteen, joss protokoll toimitt snomn perille khteen kertn: S1R3 S2R3 get S3R1 d S3R2 give S4R3 e S3R4 de S2R3 n S3R1 d S3R2. give Edellä suoritettu nlysointi perustui yhteistilverkon yksityiskohtiseen nlyysiin. Virheellinen toimint sdn kuitenkin selville myös utomttisesti. Sitä vrten kuvtn Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 53
protokolln plvelu, jok tässä tilnteess sttuu olemn sm kuin AB-protokollss. Ohjelmiston vull voidn osoitt, että hide d, de,, n, e in FE protokoll wbis FE plvelu. Tämä nähdään helposti myös mnulisesti. Yritetään muodost heikko bisimultiot: R = {(S1R3, P 1), (S2R3, P 2), (S3R2, P 2), (S1R3, P 2) }. Nyt tilst S1R3 voi tphtu get, mutt tilss P 2 vin give on mhdollist. Siten heikko bisimultiot ei void muodost, joten prosessit eivät ole ekvivlenttej. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 54
5.7. Johtopäätöksiä j ongelmi Siirtymäsysteemiformlismi on mhdollist kehittää edelleen. Jos menetelmää iotn sovelt käytännössä, on kiinnitettävä huomiot seurviin kohtiin: 1. Miten kuvtn siirtymäsysteemi muuten kuin piirroksen vull. 2. Miten kuvtn usen siirtymäsysteemin eli prosessin rinnkkinen toimint. Tässä yhteydessä on otettv knt seurviin kohtiin: miten tulkitn prosessien rinnkkinen toimint, ts. miten mllinnetn ik rinnkkisen systeemin tustll; onko prosessien kommunikointi synkronist vi synkronist; sllitnko monisynkronointi. 3. Miten otetn tietosisältö huomioon tphtumiss. 4. Siirtymävihtoehdot sttvt riippu snomien sisällöstä. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 55
5. Reliiksovelluksiss j muisskin tilnteiss trvitn ikrjoj. Miten nämä ilmistn formlismiss. 6. Siirtymillä voi käytännössä oll hyvin eriliset todennäköisyydet (esim. tn(virhe) << 1). Onko järkevää olett kuvuksiss siirtymävihtoehdot in yhtä todennäköisiksi. 7. Tvllisiss siirtymäsysteemeissä synkronointipisteet (snomt) ovt etukäteen tiedoss j niiden käyttö on kiinnitetty. Kuitenkin esimerkiksi meklrijärjestelmissä prosessi pyytää tieto meklrilt, jok välittää prosessille plvelu ntvn prosessin plveluportin. Tällisess tilnteess plveluportti eli synkronointipiste ei ole etukäteen kiinnitetty, vn se voi vihdell vrsin dynmisesti suorituksen ikn. Miten tälliset tilnteet käsitellään siirtymäsysteemeissä. Edellä minituist tvoitteist on kikki toteutetu muodoss ti toisess. Erityisesti kohtiin 1-4 on stu melko ljsti hyväksytyt rtkisut. Siirtymäsysteemejä kuvtn nykyisin prosessilgebrojen vull. Näitä ovt mm. Milnerin CCS (1980, 1989), Horen CSP (1985) j Bergstrn j Klopin ACP (1984). Näissä on rtkistu kohdt 1-2 krkesti otten smn tpn: Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 56
Siirtymäsysteemi kuvtn lgebrllisell lusekkeell. Rekursion vull sdn ilmistu silmukt. Rekursion vull voidn luod myös äärettömiä siirtymäsysteemeitä j käynnistää dynmisesti suorituksen ikn uusi prosessej. Prosessien kommunikointi on synkronist, ts. prosessi ei voi suoritt synkronointitoiminto ennenkuin toinen (ti toiset) on vlmis sen suorittmn. Tällöin suoritetn yhtäik. Epäsynkroninen kommunikointi sdn ikn ottmll järjestelmään mukn erillinen knvprosessi kuten AB-protokollss. Usest prosessist koostuvn systeemin toimint kuvtn myös siirtymäsysteemillä. Rinnkkisuutt mllinnetn lomituksen vull: Tphtumt ovt tomrisi. Jos tphtumt j b suoritetn rinnn, niin jtelln, että joko tphtuu ennen b:tä ti b ennen :t. Siten meillä on suoritusvihtoehdot b j b, jotk esiintyvät myös koko systeemiä kuvvss verkoss. Kosk rinnkkisuutt kuvtn lomituksen vull, syntyy hyvin pljon vihtoehtoj j siten hyvin suuri siirtymäsysteemejä (bc, cb, cb, bc, bc, cb). Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 57
CCS:ssä vin kksi prosessi voi synkronoitu, CSP:ssä sllitn monisynkronointi, smoin ACP:ssä. Prosessilgebroiss on myös mukn tiedonvälitysehdot siirtymille. Sen sijn perinteellisissä lgebroiss ei ole otettu huomioon reliiksovelluksi eikä todennäköisyyksiä. Näitä ominisuuksi on myöhemmin lisätty siirtymäsysteemeihin j tutkimus jtkuu edelleen. Lotos on suku CCS:lle j CSP:lle. Siinä on synkroninen kommunikointi, monisynkronointi, lomitussemntiikk. Lotoksess prosessej voidn yhdistää rinnn yleisemmin kuin minituiss prosessilgebroiss. Tästä on sekä hyötyä että hitt. Esimerkiksi minituiss prosessilgebroiss Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 58
voidn todist hyödyllisiä lgebrllisi ominisuuksi rinnkkisoperttoreille. Lotoksest nämä lit puuttuvt (esim. ssositiivisuus). Siirtymäsysteemien yhteydessä käsitelty rinnkkisoperttori on juuri Lotoksen operttori. Voimkkimmin Lotos poikke muist tietotyyppien määrittelyssä. Tietotyyppien kuvusmeknismi perustuu bstrktien tietotyyppien lgebrlliseen spesiointiin. Algebrllinen spesiointi kehittyi vuodest 1970 lken läheisesti denottiosemntiikn knss. Algebrllisess spesioinniss dttyyppien j opertioiden merkitys nousee niiden määrittelemästä lgebrst (termilgebr, initilisemntiikk). Se on erittäin voimks tekniikk, jonk vull voidn määritellä esimerkiksi luonnolliset luvut tyhjästä. Toislt se vikutt hnkllt j monimutkiselt luksi. Siksi Lotoksen ljennuksess E-Lotoksess onkin tehty mhdolliseksi määritellä tietotyyppejä enemmän tvnomisi ohjelmointikieliä muistuttvll tvll. Lotos on suunniteltu käytäntöön. Se on ljempi kuin teoreettiset kielet CCS, CSP j ACP. Tämän vuoksi se stt tuntu monimutkiselt j on tietty houkutus käyttää vin os siitä (ns. Bsic Lotos). Tämä olisi kuitenkin virhe. Täysi Lotos oikein käytettynä ei ole sen monimutkisempi kuin tvlliset ohjelmointikieletkään. Kuvuksist tulee täyden Lotoksen vull tiiviimpiä kuin perus-lotoksen vull. Tällä kurssill rjoitumme pääsiss kuitenkin perus-lotokseen. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 59
Lotoksen ljennukseen (E-Lotos) on otettu mukn myös ikkäsite. Aik-Lotost ei kuitenkn käsitellä tällä kurssill. Erityistä trvett olisi myös toteutt koht 7 eli dynminen synkronointi. Siihen on olemss elegntti rtkisu, jok pohjutuu CCS:ään. Tämä CCS:n ljennos tunnetn nimellä π-klkyyli. Sitä on yritetty sovitt myös Lotokseen, mutt toistiseksi yritykset eivät ole johtneet yleisesti hyväksyttyihin rtkisuihin. Spesioinnin j verioinnin perusteet. Päivi Kuuppelomäki 2008 60