3. Yhteistilaverkko Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 1
3.1. Johdanto Koko systeemiäkin voidaan kuvata yhdellä siirtymäsysteemillä, yhteistilaverkolla Yhteistilaverkon tilaksi tulee prosessiverkkojen tilojen vektori Otettava kantaa, millä tasolla rinnakkaisuutta eli samanaikaisuutta mallinnetaan todelliseen rinnakkaisuus lomitus Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 2
Lomitus vs. todellinen rinnakkaisuus Esim. Yhteinen muuttuja y=0 P1: P2: y := y+1; y := y-1; halt; halt; Lomitettaessa Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 3
Lomitus vs. todellinen rinnakkaisuus Esim. Yhteinen muuttuja y=0 P1: P2: y := y+1; y := y-1; halt; halt; Lomitettaessa aina lopuksi y = 0. Todellisessa rinnakkaisuudessa Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 3
Lomitus vs. todellinen rinnakkaisuus Esim. Yhteinen muuttuja y=0 P1: P2: y := y+1; y := y-1; halt; halt; Lomitettaessa aina lopuksi y = 0. Todellisessa rinnakkaisuudessa y=0, 1 tai -1 riippuen rinnakkaisuuden "asteesta". Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 3
Muuttujan muutosesiintymä on sellainen, että muuttuja on sijoituslauseen vasempana puolena. Muuten muuttujan esiintymä on viittausesiintmä. Muuttujan esiintymä prosessissa P on kriittinen, joss se on P:ssä muutosesiintymä ja muuttujalla on viittausesiintymä muussa prosessissa tai se on P:ssä viittaussesiintymä ja muuttujalla on muutosesiintymä muussa prosessissa Yhden kriittisen esiintymän sääntö: Jos jokaisessa käskyssä on korkeintaan yksi kriittinen esiintymä, niin lomitus kuvaa todellista rinnakkaisuutta. Edellä olleessa esimerkkikoodissa sääntö ei ole voimassa. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 4
Miksi? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 5
Miksi? Muuttujalla y on sekä muutos- että viittausesiintymä molemmissa prosesseissa P1 ja P2. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 5
Miksi? Muuttujalla y on sekä muutos- että viittausesiintymä molemmissa prosesseissa P1 ja P2. Muutetaan ohjelmaa: y=0 P1: P2: t := y+1; s := y-1; y := t; y := s; halt; halt; Mitä arvoja muuttujalla y on suorituksen lopussa? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 5
Miksi? Muuttujalla y on sekä muutos- että viittausesiintymä molemmissa prosesseissa P1 ja P2. Muutetaan ohjelmaa: y=0 P1: P2: t := y+1; s := y-1; y := t; y := s; halt; halt; Mitä arvoja muuttujalla y on suorituksen lopussa? Lopussa y=0, 1 tai -1 eli kaikki todellisen rinnakkaisuuden mahdollisuudet tulevat esiin jo lomituksessa. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 5
3.2. AB-protokollan yhteistilaverkko AB-protokollassa siis lähettäjä S lähettää sanomia d0 ja d1 vastaanottajalle R. Vastaavasti R lähettää kuittauksia a0 ja a1 S:lle. Oletetaan, että lähetykset ja vastaanotot tapahtuvat synkronoidusti (tight coupling, rendezvous). Tämä tarkoittaa, että kun lähettäjä lähettää, vastaanottajan on oltava valmis ottamaan lähetys vastaan. Jos vastaaottaja ei ole valmis, ei lähettäjä voi lähettää. Siis esimerkiksi sanoman d0 lähetyksen yhteydessä lähettäjä siirtyy uuteen tilaan siirtymällä d0 ja samalla vastaanottaja siirtyy uuteen tilaan myöskin siirtymällä d0. Sisäinen siirtymä ei aiheuta tilanvaihtoja toisissa prosesseissa. Samoin ajastintapahtuma t aiheuttaa siirtymän vain lähettäjäprosessissa. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 6
Yhteistilaverkon tila on AB-protokollan tapauksessa pari (Si, Rj), missä Si on lähettäjän ja Rj vastaanottajan tila. Ajastimesta ei oleteta mitään. Siten se voi laueta turhan aikaisin, mutta tämän ei pitäisi johtaa virheisiin. Lähettäjän S ja vastaanottajan R siirtymäsysteemit ovat: R1 d1 a1 R4 d1 S1 a1 S4 d0 d1 t d0 t d1 R2 a0 R3 S2 a0 S3 d0 d0 Yhteistilaverkoksi saadaan seuraava: Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 7
t S1 R1 S2 R1 a1 d0 d0 S2 R2 t S1 R2 a0 S2 R3 t S1 R3 S3 R3 d1 t d1 S4 R3 d0 S4 R4 t S3 R4 S4 R1 t S3 R1 d1 Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 8
Mitä yhteistilaverkosta nähdään? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 9
Mitä yhteistilaverkosta nähdään? Onko lukkiumia? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 9
Mitä yhteistilaverkosta nähdään? Onko lukkiumia? Ei Mitä tapahtuu tiedonsiirtovirheiden jälkeen? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 9
Mitä yhteistilaverkosta nähdään? Onko lukkiumia? Ei Mitä tapahtuu tiedonsiirtovirheiden jälkeen? Mitä tapahtuu ajastinvirheiden jälkeen? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 9
Mitä yhteistilaverkosta nähdään? Onko lukkiumia? Ei Mitä tapahtuu tiedonsiirtovirheiden jälkeen? Mitä tapahtuu ajastinvirheiden jälkeen? Erilaiset tiedonsiirto- ja ajastinvirheet näkyvät poikkeamina perussyklistä, mutta jokaisessa tilanteessa päästään takaisin perussykliin. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 9
3.3. Rinnakkaisoperaattori Yhteistilaverkon määrittely rinnakkaisoperaattorin avulla Olkoot P ja Q siirtymäsysteemejä. P :n tilat ovat P 1, P 2,, P m ja P 1 on alkutila Q:n tilat Q 1, Q 2,, Q n ja Q 1 on alkutila a P i, jos P :n tilasta P i on siirtymä tapahtumalla a P :n tilaan P i P i Vastaavasti Q:n tapauksessa. Prosessien P ja Q yhteistilaverkko P [a 1,, a k ] Q: Alkutila on (P 1, Q 1 ) Tilajoukon muodostavat parit (P i, Q j ), i = 1,, m, j = 1,, n Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 10
3.3. Rinnakkaisoperaattori Yhteistilaverkon määrittely rinnakkaisoperaattorin avulla Olkoot P ja Q siirtymäsysteemejä. P :n tilat ovat P 1, P 2,, P m ja P 1 on alkutila Q:n tilat Q 1, Q 2,, Q n ja Q 1 on alkutila a P i, jos P :n tilasta P i on siirtymä tapahtumalla a P :n tilaan P i P i Vastaavasti Q:n tapauksessa. Prosessien P ja Q yhteistilaverkko P [a 1,, a k ] Q: Alkutila on (P 1, Q 1 ) Tilajoukon muodostavat parit (P i, Q j ), i = 1,, m, j = 1,, n Miten siirtymät määritellään? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 10
3.3. Rinnakkaisoperaattori Yhteistilaverkon määrittely rinnakkaisoperaattorin avulla Olkoot P ja Q siirtymäsysteemejä. P :n tilat ovat P 1, P 2,, P m ja P 1 on alkutila Q:n tilat Q 1, Q 2,, Q n ja Q 1 on alkutila a P i, jos P :n tilasta P i on siirtymä tapahtumalla a P :n tilaan P i P i Vastaavasti Q:n tapauksessa. Prosessien P ja Q yhteistilaverkko P [a 1,, a k ] Q: Alkutila on (P 1, Q 1 ) Tilajoukon muodostavat parit (P i, Q j ), i = 1,, m, j = 1,, n Miten siirtymät määritellään? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 10
Tapahtumat a 1,, a k ovat synkronointitapahtumia, joiden yhteydessä prosessit synkronoituvat ja suorittavat tapahtuman yhtäaikaa. Jos toinen prosesseista ei voi suorittaa synkronointitapahtumaa, ei toinenkaan saa sitä suorittaa. Muita tapahtumia prosessit voivat suorittaa vapaasti toisistaan riippumatta. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 11
Tapahtumat a 1,, a k ovat synkronointitapahtumia, joiden yhteydessä prosessit synkronoituvat ja suorittavat tapahtuman yhtäaikaa. Jos toinen prosesseista ei voi suorittaa synkronointitapahtumaa, ei toinenkaan saa sitä suorittaa. Muita tapahtumia prosessit voivat suorittaa vapaasti toisistaan riippumatta. Rinnakkaisoperaattorin [a 1,, a k ] avulla määritellään nyt siirtymät tilojen (eli tilaparien) välille seuraavasti. Aluksi vaaditaan, että a i kaikilla i = 1,, k. Kun tilapariin (P i, Q j ) sovelletaan rinnakkaisoperaattoria, merkitään synkronointitapahtumat näkyviin kirjoittamalla P i [a 1, a 2,, a k ] Q j. Seuraavien sääntöjen perusteella saadaan määrättyä siirtymät parista (P i, Q j ) (pari kirjoitetaan siis muotoon P i [a 1, a 2,, a k ] Q j ) pariin (P i, Q j ) (eli P i [a 1, a 2,, a k ] Q j ). a 1. Jos a {a 1,, a k }, P i P i ja Q j a Q j, niin P i [a 1, a 2,, a k ] Q j a P i [a 1, a 2,, a k ] Q j. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 11
2. Jos a {a 1,, a k } ja P i a P i, niin P i [a 1, a 2,, a k ] Q j a P i [a 1, a 2,, a k ] Q j. 3. Jos a {a 1,, a k } ja Q j a Q j, niin P i [a 1, a 2,, a k ] Q j a P i [a 1, a 2,, a k ] Q j. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 12
2. Jos a {a 1,, a k } ja P i a P i, niin P i [a 1, a 2,, a k ] Q j a P i [a 1, a 2,, a k ] Q j. 3. Jos a {a 1,, a k } ja Q j a Q j, niin P i [a 1, a 2,, a k ] Q j a P i [a 1, a 2,, a k ] Q j. Sovelluksissa synkronointijoukko valitaan tilanteen mukaan. Jos k = 0 eli yhtään tapahtumaa ei ole mukana, puhutaan täydellisestä lomituksesta. Sille käytetään merkintää. Jos synkronointijoukkoon halutaan kaikki näkyvät tapahtumat, käytetään merkintää. Lopulliseen yhteistilaverkkoon otetaan tietenkin vain yhteistilat, jotka voidaan saavuttaa alkutilasta. Se merkitään kirjoittamalla rinnakkaisoperaattori synkronointijoukkoineen prosessien nimien väliin. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 12
Mitä rinnakkaisoperaattorilla saatua lauseketta vastaa aiemmin generoitu AB-protokollan yhteistilaverkko? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 13
Mitä rinnakkaisoperaattorilla saatua lauseketta vastaa aiemmin generoitu AB-protokollan yhteistilaverkko? S [d0, d1, a0, a1] R Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 13
Mitä rinnakkaisoperaattorilla saatua lauseketta vastaa aiemmin generoitu AB-protokollan yhteistilaverkko? S [d0, d1, a0, a1] R Seuraavassa on muutamia esimerkkejä lisää: Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 13
P: P1 Q: Q1 a P2 Q2 a P3 a P4 P [ a ] Q: P Q: P1 Q1 P1 Q1 a P1 Q2 a P3 Q2 P2 Q1 a P4 Q2 a P3 Q1 P2 Q1 a a P4 Q1 P2 Q2 a a a a P3 Q2 P4 Q2 Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 14
P: P1 Q: a P2 Q1 Q2 b P [ a,b ] Q: P1 Q1 Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 15
3.4. Rinnakkaisoperaattorin ominaisuuksia Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 16
3.4.1. Monisynkronointi Rinnakkaisoperaattori tukee usean prosessin yhtäaikaista synkronointia. Esimerkiksi lausekkeessa P [a] (Q [a] R) toiminto a voi esiintyä Q:ssa ja R:ssä vain, jos molemmat prosessit osallistuvat siihen. Toisaalta Q [a] R on myös siirtymäsysteemi, joten a voi tapahtua siinä (ja siis Q:ssa ja R:ssä) ja P :ssä vain, jos molemmat osallistuvat siihen. Siten a:han osallistuvat kaikki kolme prosessia. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 17
3.4.2. Synkronoinnin luonne Synkronointi on symmetristä. Ei erotella, kuka aloittaa synkronoinnin ja kuka on vastaanottaja. Tämä tulee erityisen selvästi esille siinä, että sanoman välitykseen osallistuvat sekä lähettäjä että vastaanottaja tasavertaisina. Synkronointi on nimetöntä. Synkronointiin valmis oleva prosessi tarjoaa synkronointia ympäristön kanssa kykenemättä kuitenkaan ohjaamaan synkronointitarjousta millekään tietylle prosessille. Systeemin rakenne ratkaisee, mitkä prosessit osallistuvat synkronointitapahtumaan. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 18
3.4.3. Rinnakkaisoperaattorin liitännäisyys Yleisesti ottaen rinnakkaisoperaattori ei ole liitännäinen eli ei päde P A 1 (Q A 2 R) = (P A 1 Q) A 2 R. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 19
Seuraavissa tapauksissa liitännäisyys on kuitenkin voimassa: 1. CSP:n tapaus. Olkoon P, Q ja R prosesseja ja A P, A Q, A R prosessien toimintojoukot. Tällöin P A P (A Q A R ) (Q A Q A R R) (P A P A Q Q) (A P A Q ) A R R, missä ' tarkoittaa, että vastaavat siirtymäsysteemit ovat tilojen nimeämistä vaille samat. 2. Mielivaltaisella synkronointijoukolla B P B (Q B R) (P B Q) B R. 3. Synkronointijoukoilla B 1 ja B 2 pätee P B 1 (Q B 2 R) (P B 1 Q) B 2 R, jos A P B 2 = and A R B 1 =. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 20
Perustelut. Kohdassa 1 riittää osoittaa, että jokaista siirtymää toisessa systeemissä vastaa sama siirtymä toisessakin. Joudutaan tarkastelemaan monia vaihtoehtoja. a) Oletetaan ensin, että a A P (A Q A R ) ja P A P (A Q A R ) (Q A Q A R R) a P A P (A Q A R ) (Q A Q A R R). Tällöin a A P ja siten a A Q A R. Siis a (A P A Q ) A R ja a A P A Q. Mutta tässä tapauksessa myös (P A P A Q Q) (A P A Q ) A R R a (P A P A Q Q) (A P A Q ) A R R. b) a A P (A Q A R ), a A Q A R ja P A P (A Q A R ) (Q A Q A R R) a P A P (A Q A R ) (Q A Q A R R). c) a A P (A Q A R ), a A Q A R ja P A P (A Q A R ) (Q A Q A R R) a P A P (A Q A R ) (Q A Q A R R ). Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 21
d) a A P (A Q A R ) ja a A Q A R. e) a A P (A Q A R ) ja a A Q A R. Kohta 2) todistetaan samoin kuin kohta 1), mutta kohdassa 2) on vähemmän vaihtoehtoja (a B, a B). Kohta 3) on kohdan 1) modikaatio. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 22
3.5. Yhteistilaverkon käytännön toteutuksesta Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 23
3.5.1. Yhteistilaverkko tietorakenteena Yhteistilaverkkoa käytetään kahdella tavalla: kuljetaan yhteistilaverkossa muodostamatta sitä kokonaan yhteistilaverkko on generoitava kokonaan Mitä ongelmia? Verkko on usein suuri Aina ei voida muodostaa verkkoa Millainen tietorakenne? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 24
3.5.1. Yhteistilaverkko tietorakenteena Yhteistilaverkkoa käytetään kahdella tavalla: kuljetaan yhteistilaverkossa muodostamatta sitä kokonaan yhteistilaverkko on generoitava kokonaan Mitä ongelmia? Verkko on usein suuri Aina ei voida muodostaa verkkoa Millainen tietorakenne? Yhteistilaverkko on tavallisesti harva. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 24
3.5.1. Yhteistilaverkko tietorakenteena Yhteistilaverkkoa käytetään kahdella tavalla: kuljetaan yhteistilaverkossa muodostamatta sitä kokonaan yhteistilaverkko on generoitava kokonaan Mitä ongelmia? Verkko on usein suuri Aina ei voida muodostaa verkkoa Millainen tietorakenne? Yhteistilaverkko on tavallisesti harva. Matriisiesitykset eivät tule kysymykseen, vaan lähtökohtana on vieruslistaesitys. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 24
Verkon generointi tapahtuu normaalisti syvyyssuuntaisesti: Otetaan siis lähtökohdaksi alkutila, joka on tilapari. Generoidaan kaikki tilaparit, joihin päästään alkutilasta. Viedään nuo tilaparit pinoon. Jatketaan sen jälkeen seuraavasti kunnes pino on tyhjä: Otetaan pari pinosta, generoidaan kaikki siirtymät parista toisiin pareihin, viedään uudet parit pinoon ja vedetään kaaret. Asiaa mutkistaa hieman se, että on aina tarkistettava, onko generoitu pari uusi vai vanha. Jos generoitava verkko esitetään myös vieruslistojen avulla, solmujen nimet ovat siinä kokonaislukuja, eivät pareja. Siten joudutaan etsimään, vastaako annettua paria jokin verkossa jo oleva koknaisluku vai ei. Jos ei,niin parille on annettava seuraava vapaana oleva luku. Tämä johtaa yleensä hajautukseen. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 25
3.5.2. Bittihajautus ja muita vaihtoehtoja Koska yhteistilaverkko on suuri, tarvitaan myös suuri hajautustaulukko. Olisi houkuttelevaa päästä käyttämään hyväksi virtuaalimuistia, mutta tässä on omat ongelmansa. Nimittäin parit ja kokonaisluvut tulevat vastaan sekalaisessa järjestyksessä. Tämä johtaa siihen, että virtuaalimuistin sivuja joudutaan jatkuvasti hakemaan levyltä. Se hidastaisi toimintaa liiaksi. Siis yleensä pyritään keskusmuistiratkaisuihin. G. Holzmannin ratkaisu oli käyttää bittihajautusta. Tällöin pari, tai yleensä yhteistilaa kuvaava tieto, tulkitaan bittijonoksi ja se taas edelleen kokonaisluvuksi. Varataan nyt totuusarvoinen taulukko, jonka koko on sellainen, että suurin yhteistilaa vastaava bittijono luvuksi tulkittuna kuuluu vielä taulukon indekseihin. Tätä taulukkoa voidaan käyttää tehokkaasti hajautukseen, eikä sen alkioiden tieto vie kuin yhden bitin. Itse asiassa koko siirtymäsysteemi voidaan esittää vaihtoehtoisella tavalla. Boolen funktioille on kehitetty tietyissä tilanteissa kompakti esitysmuoto ja samaa ideaa voidaan soveltaa myös siirtymäsysteemeihin. Tällöin puhutaan ns. BDD:stä (binary decision diagram). Tämäkään ratkaisu ei ole universaali ratkaisu yhteistilaverkon kokoon: joissakin Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 26
tilanteissa BDD:t auttavat pienentämään esitysmuotoa, mutta ei läheskään aina. Monet algoritmit toimivat lisäksi suoraviivaisemmin tavallisen vieruslistaesityksen pohjalta kuin BDD:n pohjalta. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 27
4. Mallinnuksen perusasioita Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 28
4.1. Epädeterminismi Olkoon P ja Q siirtymäsysteemejä ja a toiminto. On kolme tapaa mallintaa epädeterminismiä siirtymäsysteemeillä: 1 1 a a a P Q P Q 1 P Q Tapaus 1: Ympäristöllä on mahdollisuus vaikuttaa systeemiin, jos a tapahtuu "ennen"sisäistä tapahtumaa. Tapaus 2: Systeemi päättää ympäristön reagoinnin yhteydessä, kumman a:n se valitsee. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 29
Tapaus 3: Systeemi päättää sisäisesti, käyttäytyykö se P :n vai Q:n mukaisesti. Esimerkiksi tietoliikennekanavaa mallinnettaessa on tarkoituksenmukaista valita vaihtoehto 3, jos P merkitsee sanoman välittämistä ja Q sanoman häviämistä. Toisena esimerkkinä on lentokoneen paikanvarausjärjestelmä, jonka erästä toimintoa kuvaa siirtymäsysteemi: 1 Seat Confirmed 3 2 4 5 No Seats Available 6 System Not Available 7 Eli paikanvarauspyynnön tulos on täysin epämääräinen asiakkaan näkökulmasta, sillä normaali asiakas ei tiedä, kuinka systeemi on rakennettu tai onko vapaita paikkoja jäljellä. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 30
Asiakkaan kyvyttömyyttä vaikuttaa systeemiin mallinnetaan sisäisillä tapahtumilla. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 31
4.2. Kanavat ja ympäristö Kommunikointi tietokoneverkoissa ei yleensä ole synkronista. Kuitenkin rinnakkaisoperaattori vaatii synkronista tiedonvälitystä. Miten mallinnetaan asynkroninen tiedonvälitys? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 32
4.2. Kanavat ja ympäristö Kommunikointi tietokoneverkoissa ei yleensä ole synkronista. Kuitenkin rinnakkaisoperaattori vaatii synkronista tiedonvälitystä. Miten mallinnetaan asynkroninen tiedonvälitys? Spesioimalla kanava siirtymäsysteeminä. Prosessi lähettää sanoman kanavaan synkronisesti ja jatkaa sitten toimintaansa. Toinen prosessi ottaa sanoman kanavasta synkronisesti sitten, kun se sille sopii. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 32
Onko tästä haittoja? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 33
Onko tästä haittoja? Hintana on tosin se, että yhteistilaverkko kasvaa. Tämä riippuu toisinaan voimakkaasti siitä, kuinka monta sanomaa kanavaan voidaan lähettää ilman, että sieltä poistuu sanomia. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 33
Onko tästä haittoja? Hintana on tosin se, että yhteistilaverkko kasvaa. Tämä riippuu toisinaan voimakkaasti siitä, kuinka monta sanomaa kanavaan voidaan lähettää ilman, että sieltä poistuu sanomia. Toisinaan on tarpeen mallintaa myös varsinaisen protokollan ympäristöä. Esimerkiksi ABprotokollassa voidaan olettaa, että lähettäjä saa datasanomia get-sanomassa ympäristöltä ja vastaanottaja luovuttaa vastaanottamansa datasanomat muodossa give omalle ympäristölleen. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 33
Mallinnamme nyt AB-protokollan oikeaoppisemmin kanavien ja ympäristöjen avulla. Lisäksi mallinnetaan ajastin erillisenä prosessina. Tehdään seuraavat sopimukset: Lähettäjä lähettää kanavaan sanomia d0 ja d1. Vastaanottaja ottaa kanavasta sanomia dd0 ja dd1. Vastaanottaja lähettää kanavaan sanomat a0 ja a1. Lähettäjä vastaanottaa kanavasta sanomat aa0 ja aa1. Lähettäjä ja ympäristö kommunikoivat synkronisesti sanoman get avulla. Vastaanottaja ja ympäristö kommunikoivat synkronisesti sanoman give avulla. Lähettäjä virittää ajastimen synkronisesti tapahtuman sett avulla. Ajastin ilmoittaa laukeamisesta lähettäjälle synkronisesti tapahtuman timeout avulla. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 34
Lähettäjä ilmoittaa ajastimelle synkronisesti sanomalla reset, että ajastin voi palata alkutilaan. Lähettäjäprosessi S ja vastaanottajaprosessi R dd1 S: S1 reset S10 aa1 S9 R: R1 a1 R6 dd1 get sett dd0 give S2 aa0 S8 R2 R5 timeout S3 d0 timeout S7 d1 aa1 dd0 R3 give a0 dd1 R4 sett aa0 S4 S5 reset S6 get dd0 Sanoman katoaminen tai vääristyminen on laitettu kanavan tehtäväksi, ei lähettäjäprosessin. Lähettäjäprosessiin on tullut muutama uusi siirtymä (tilat S2 ja S7), joissa otetaan vastaan Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 35
kuittaus. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 36
kuittaus. Miksi nämä siirtymät tarvitaan? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 36
kuittaus. Miksi nämä siirtymät tarvitaan? Tämä johtuu kanavasta ja hätäilevästä ajastimesta. Ajastin voi laueta, vaikka kuittaus onkin tulossa, tosin vasta kanavassa. Jotta kanava voisi luovuttaa sanomansa ja ottaa vastaan uusia sanomia, lähettäjän on otettava vastaan se, mitä kanavasta on tulossa. Jos näin ei tehtäisi, seuraisi lukkiuma. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 36
kuittaus. Miksi nämä siirtymät tarvitaan? Tämä johtuu kanavasta ja hätäilevästä ajastimesta. Ajastin voi laueta, vaikka kuittaus onkin tulossa, tosin vasta kanavassa. Jotta kanava voisi luovuttaa sanomansa ja ottaa vastaan uusia sanomia, lähettäjän on otettava vastaan se, mitä kanavasta on tulossa. Jos näin ei tehtäisi, seuraisi lukkiuma. Ajastinprosessi voidaan esittää kahden tilan avulla. T: T1 timeout sett reset T2 Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 36
Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 37
Kanavan kohdalla on oletettu, että vain yksi sanoma voi olla kanavassa kerrallaan. Sanoman katoaminen tai vääristyminen on nyt kanavan tehtävä, ei lähettäjäprosessin. Kanavaprosessi siis vastaanottaa esim. datasanoman numerolla 0 tapahtumalla d0 ja toimittaa sen eteenpäin tapahtumalla dd0. C: dd1 dd0 C5 C4 d1 C1 d0 C2 C3 aa0 a0 a1 aa1 C6 C8 C7 C9 Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 37
Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 38
Miksi tarvitaan esimerkiksi tila C5? Miksi tapahtumaa dd1 ei vie suoraan tilasta C4 tilaan C1? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 38
Miksi tarvitaan esimerkiksi tila C5? Miksi tapahtumaa dd1 ei vie suoraan tilasta C4 tilaan C1? Kanavaprosessi on mallinnettu siten, että ympäristö ei voi vaikuttaa siihen katoaako sanoma vai ei. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 38
Miksi tarvitaan esimerkiksi tila C5? Miksi tapahtumaa dd1 ei vie suoraan tilasta C4 tilaan C1? Kanavaprosessi on mallinnettu siten, että ympäristö ei voi vaikuttaa siihen katoaako sanoma vai ei. Yhteistilaverkko muodostuu nyt neljän prosessin yhdistelmästä. Se on oleellisesti monimutkaisempi kuin aiemman protokollaversion yhteistilaverkko, joten sen piirtäminen käsin kokonaan ei ole järkevää. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 38
dd1 S: S1 reset S10 aa1 S9 R: R1 a1 R6 dd1 get sett dd0 give S2 aa0 S8 R2 R5 timeout d0 S3 sett aa0 S4 d1 give timeout dd1 dd0 S7 aa1 R3 a0 R4 get dd0 reset S5 S6 C: dd1 dd0 C5 C4 d1 C1 d0 C2 C3 T: T1 timeout sett reset aa0 C6 a0 a1 C8 aa1 T2 C7 C9 Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 39
dd1 S: S1 reset S10 aa1 S9 R: R1 a1 R6 dd1 get sett dd0 give S2 aa0 S8 R2 R5 timeout d0 S3 sett aa0 S4 d1 give timeout dd1 dd0 S7 aa1 R3 a0 R4 get dd0 reset S5 S6 C: dd1 dd0 C5 C4 d1 C1 d0 C2 C3 T: T1 timeout sett reset aa0 C6 a0 a1 C8 aa1 T2 C7 C9 AB = ((S [timeout, reset, sett] T ) [do, d1, aa0, aa1] C) [dd0, dd1, a0, a1] R Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 39
S1 T1 C1 R1 (0) get timeout S2 T1 C1 R1 (1) 11 d0 sett S3 T1 C1 R1 (4) S3 T1 C2 R1 (0) S3 T1 C3 R1 (5) dd0 S3 T1 C1 R2 (9) sett sett give S4 T2 C1 R1 (7) timeout S4 T2 C2 R1 (3) S2 T1 C2 R1 (6) S3 T1 C1 R3 (12) timeout S4 T2 C3 R1 (8) S2 T1 C3 R1 (10) a0 S3 T1 C6 R4 (15) dd0 dd0 timeout S4 T2 C1 R2 (11) S2 T1 C1 R2 (13) sett.... give d0 give S4 T2 C1 R3 (14) a0 timeout........ sett Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 40