T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Johdanto

Samankaltaiset tiedostot
T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Johdanto

1. Johdanto. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki

TIETOJENKÄSITTELYTEORIAN PÄÄAINEEN KORVAAVUUSPERIAATTEET

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Aikalogiikka

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Paikka siirtymä-verkot

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Korkean tason verkot

Tehtävä 2: Tietoliikenneprotokolla

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Stokastinen analyysi

Monimutkaisempi stop and wait -protokolla

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Verkon värittämistä hajautetuilla algoritmeilla

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Stokastinen analyysi

Tietokoneen toiminta (Computer Organization I)

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra

1. Tarkastellaan seuraavaa stokastista Petri-verkkoa: p 2. p 1. lock write 1

Ohjelmistojen mallintaminen, mallintaminen ja UML

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Markov-ketjut pitkällä aikavälillä

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

3. Yhteistilaverkko. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki

Ohjelmien automaattisen verifioinnin reunamailla

Tietokoneen toiminta (Computer Organization I)

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Tietotekniikan valintakoe

Turingin koneen laajennuksia

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

Tietokoneen toiminta (Computer Organization I)

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Tietokoneen toiminta (Computer Organization I)

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

kynnysarvo (threshold) varoitusarvo = tästä lähtien syytä varoa ruuhkaa aluksi 64 K RTT

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

ELEC-C7241 Tietokoneverkot Kuljetuskerros

kynnysarvo (threshold)

kynnysarvo (threshold)

Matematiikan ohjelmointi. Joakim von Wright

811120P Diskreetit rakenteet

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

7.4 Sormenjälkitekniikka

OHJ-4301 Sulautettu Ohjelmointi

Kyselytutkimus opiskelijoiden ajankäytöstä tietojenkäsittelyteorian peruskurssilla

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

ELEC-C5210 Satunnaisprosessit tietoliikenteessä

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

OSI ja Protokollapino

T Johdatus tietoliikenteeseen 5 op. Kevät 2013

Stabilointi. Marja Hassinen. p.1/48

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Esimerkki 1: Kahviautomaatti.

Markov-ketjut pitkällä aikavälillä

11/20: Konepelti auki

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Kiertokysely. Sulautetut järjestelmät Luku 2 Sivu 1 (??)

PANKKILINJAN FTP - KUVAUS

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

811120P Diskreetit rakenteet

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Liittymät Euroclear Finlandin järjestelmiin, tietoliikenne ja osapuolen järjestelmät Toimitusjohtajan päätös

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

Määrittelyvaihe. Projektinhallinta

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Saavutettavuusanalyysi

Onnistunut Vaatimuspohjainen Testaus

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

UML -mallinnus TILAKAAVIO

Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi.

Johdantoluento. Ohjelmien ylläpito

käyttötapaukset mod. testaus

Korkean resoluution ja suuren kuva-alueen SAR

7. Koneenohjausjärjestelmien suunnittelumallit. OhAr Veli-Pekka Eloranta

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

1. Universaaleja laskennan malleja

Ohjelmoinnin peruskurssi Y1

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

Suoritusten seuranta ja opiskelijan edistyminen

UML- mallinnus: Tilakaavio

TIETOTEKNIIKKA Koodi Vanha opintojakso op ov Vastuuhenkilö LV vastaavat opinnot tai korvaava suoritustapa TTE.

Tietoliikenne I 2 ov kevät 2002

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Formalisoimme nyt edellä kuvatun laskennan.

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Stabiloivat synkronoijat ja nimeäminen

12. Näppäimistöltä lukeminen 12.1

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Transkriptio:

T-79.179 Rinnakkaiset ja hajautetut digitaaliset järjestelmät Johdanto 15. tammikuuta 2002

T-79.179: Johdanto 1-1 Kevään 2002 opintojakso Luennot: Harjoitukset: Suorittaminen: Esitiedot: TkL, 451 3365, Marko.Makela@hut.fi DI Teemu Tynjälä, 451 5138, Teemu.Tynjala@hut.fi Jukka Honkola, 451 5244, Jukka.Honkola@hut.fi Tentti ja pakolliset kotitehtävät (vähimmäispisteraja; mahdollisuus parantaa arvosanaa) T-79.144 Logiikka tietotekniikassa, perusteet T-79.148 Tietojenkäsittelyteorian perusteet (This course corresponds to T-79.231, which is lectured in English.)

T-79.179: Johdanto 1-2 Opetusmateriaali ja Teemu Tynjälä: Mikko Tiusanen: : David Walker: luentokalvot (opintojakson kotisivulta tai opetusmonisteina) Petri-verkkojen perusteet (opetusmonisteina?) MARIA-käyttöohje: http://www.tcs.hut.fi/software/maria/ Introduction to a Calculus of Communicating Systems Muuta lukemista Tadao Murata: Robin Milner: Petri Nets: Properties, Analysis and Applications Communication and Concurrency

T-79.179: Johdanto 1-3 Tiedottaminen Kotisivu http://www.tcs.hut.fi/teaching/t-79.179/ harjoitustehtävät kotitehtävät Keskusteluryhmä nntp://news.tky.hut.fi/opinnot.tik.rhj pikaiset ilmoitusasiat keskustelua harjoitus- ja kotitehtävistä

T-79.179: Johdanto 1-4 Opintojakson tavoite Kurssin tavoitteena on antaa valmiuksia rinnakkaisten ja hajautettujen järjestelmien mallintamiseen sekä niitä koskevien vaatimusten esittämiseen ja tarkistamiseen. Mallintaminen: Petri-verkot, siirtymäjärjestelmät ja prosessialgebra Vaatimusten esittäminen: aikalogiikka Vaatimusten tarkistaminen: saavutettavuusanalyysi, työkalujen käyttö

T-79.179: Johdanto 1-5 Muita aihepiiriin liittyviä opintojaksoja T-79.186 T-79.190 T-79.193 T-76.164 T-76.166 T-79.146 T-79.185 Reaktiiviset järjestelmät Rinnakkaisohjelmistojen testaus Rinnakkaisohjelmistojen määrittelymenetelmät Sulautetut järjestelmät Rinnakkaisohjelmointi Logiikka tietotekniikassa: Erityiskysymyksiä I Verifiointi

T-79.179: Johdanto 1-6 Rinnakkaiset ja hajautetut järjestelmät: mitä ne ovat? rinnakkaisuus: tapahtumien samanaikaisuus (concurrency) ja suoritusjärjestysten vaihtoehtoisuus (epädeterminismi) hajautus: järjestelmää ei hallita täysin keskitetysti Hajautettu järjestelmä on sellainen, jossa entuudestaan tuntemattoman koneen hajoaminen saa koneesi käyttökelvottomaksi. L. Lamport asynkronisuus: järjestelmän osia ei ole tahdistettu muuten kuin viestiliikenteellä reaktiivisuus: jatkuvatoimisen järjestelmän toimintaa säätelevät ulkoiset ärsykkeet

T-79.179: Johdanto 1-7 Rinnakkaiset ja hajautetut järjestelmät: suunnitteleminen Rinnakkaisuutta sisältävät järjestelmät ovat usein niin mutkikkaita, ettei niitä ole mahdollista tehdä huonotapaisille ohjelmoijille tutulla yrityksen ja erehdyksen menetelmällä. Vaikka perustapaus toimisikin, erikoistapaukset voivat aiheuttaa ongelmia. epädeterminismi (vaihtoehtojen suuri määrä): paikallinen haarautuminen: mielivaltainen syöte ja laaja switch-lohko ajassa haarautuminen: jokin ärsyke voi saapua hyvin monella eri hetkellä järjestelmän nykyisten ja tulevien osien keskinäiset riippuvuudet: hajautettuja toimintoja ohjaava koodi tuppaa pirstoutumaan laajennukset on helpointa ottaa huomioon abstraktissa mallissa

T-79.179: Johdanto 1-8 Rinnakkaiset ja hajautetut järjestelmät: mihin tarvitaan? tehostaminen: monta pienitehoista suoritinta saa edullisemmin kuin yhden huipputehokkaan, eikä yhden tehokkaimman suorittimen teho välttämättä riitä sovellukseen redundanssi: järjestelmä pysyy toiminnassa huoltojaksojen ja joidenkin laitteiden toimintahäiriöiden aikana modulaarisuus: voi olla helpompi hallita monta erikoistunutta prosessia kuin yhtä monimutkaista, joka huolehtii kaikesta maantieteellinen hajautus: varautuminen suuronnettomuuksiin ja sotatoimiin

T-79.179: Johdanto 1-9 Järjestelmien ominaisuuksia turvallisuus (safety) : "järjestelmä ei joudu pahaan tilaan"; kussakin tilassa pätee P lukkiutumattomuus (deadlock freedom) keskinäinen poissulkevuus (mutual exclusion) jne. elävyys (liveness) : "järjestelmä etenee"; X tapahtuu äärettömän usein reiluus (fairness) ; X:n jälkeen Y tapahtuu n askeleen kuluessa lähetetyt viestit saapuvat perille kukin palvelupyyntö suoritetaan vakautuvuus (self-stabilisation) : "järjestelmä toipuu häiriöstä äärellisessä ajassa"

T-79.179: Johdanto 1-10 Menetelmiä Petri-verkot: paikka siirtymä-verkot ja korkean tason verkot Aikalogiikka MARIA ja algebralliset järjestelmäverkot Siirtymäjärjestelmät ja prosessialgebra Tila-avaruuden kutistusmenetelmien perusperiaatteet: osittaisjärjestyskutistukset ja vastaavuudet (ekvivalenssit)

T-79.179: Johdanto 1-11 Menetelmien käyttökohteita tietoliikenne yhteyskäytäntöjen (protokollien) tarkistaminen (verifiointi) ja testaaminen suorituskyvyn arviointi turvallisuuskriittiset sulautetut järjestelmät rautateiden kulunvalvonta (JKV) lentokoneiden ja lennonjohdon järjestelmät laitteistosuunnittelu: locally synchronous, globally asynchronous suorittimet, liitäntäpiirit, välimuistit ja muistiväylät ohjelmoitavan logiikan ja mikro-ohjainten työnjako mitkä tahansa reaktiiviset järjestelmät

T-79.179: Johdanto 1-12 Ohjelmistotuotannon ongelmia Miten suunnitellaan ja toteutetaan ohjelmisto siten, että se kyetään toimittamaan ajallaan tilauksen mukaisena, sen kustannukset pysyvät ennalta määrätyissä rajoissa, asiakas saa odotuksiaan vastaavan ratkaisun ja ohjelmistoa on helppo laajentaa? Ohjelmien tekeminen on pitkälti käsityötä. Formaalit menetelmät (formal methods) tarjoavat ratkaisuja joihinkin ongelmiin.

T-79.179: Johdanto 1-13 Ohjelmistokriisi Ohjelmien koon kasvaessa niiden tuotanto- ja ylläpitokustannukset kasvavat. Mitä myöhemmin virhe havaitaan, sen kalliimpaa se on korjata (enemmän koodimuutoksia tai jopa asiakastoimituksia). Sopimussakot ja maineen menettäminenkin maksavat. puhelinverkko: vaihteiden kaatumisia, feature interaction, laskutusongelmia avaruusluotainten virheitä: Mariner I, Ariane 5,... Pentium-suoritinten virheitä: fpdiv, f0 0f,... huonosti ohjelmoitujen WWW-palvelinten ylläpito sitoo tolkuttomasti resursseja muita esimerkkejä virheistä: nntp:comp.risks

T-79.179: Johdanto 1-14 Mitä määrittäminen (spesifiointi) on? Määrittäminen on järjestelmän toimintojen oletusten ja vaatimusten kuvaamista. Määritysten tulisi olla yksikäsitteisiä mutta ei välttämättä täydellisiä. Määrityksissä kuvataan sallitut laskennat (tai suoritukset). Määritystä voidaan pitää asiakkaan ja toimittajan välisenä sopimuksena siitä, mitä toimitettava ohjelma tekee. Spesifioinnilla tarkoitetaan yleensä järjestelmän formaalia kuvaamista.

T-79.179: Johdanto 1-15 Formaalien kuvausmenetelmien etuja oikeellisuus: automaattinen tarkistus, että järjestelmä toteuttaa vaatimusmääritykset täydellisyys: määritykset toimivat muistilistana yhdenmukaisuus: määrityksistä voidaan varhaisessa vaiheessa havaita ristiriitaisia tai kohtuuttomia vaatimuksia uudelleenkäytettävyys: määritykset ovat varsin riippumattomia ohjelmisto- ja laitteistoympäristöstä, ja samat ratkaisut sopivat erilaisiin hankkeisiin ( design patterns ) Ohjelmistotuotannon kuvausmenetelmät, kuten UML, eivät usein ole riittävän formaaleja.

T-79.179: Johdanto 1-16 Spesifiointi ohjelmistotuotannossa vaatimusten esittäminen: asiakkaan tarpeiden selventäminen suunnittelu: ositus, osien liittäminen (composition) ja tarkentaminen (refinement) verifiointi: toteuttaako järjestelmän formaali malli halutut ominaisuudet validointi: vastaako järjestelmän toteutus mallista johdettuja testitapauksia toteutuksen dokumentointi analysointi ja arviointi: olemassaolevan järjestelmän mallintaminen sen ymmärtämistä ja jatkokehitystä varten (reverse engineering)

T-79.179: Johdanto 1-17 Esimerkki: luotettava yhteys häviöllisellä kanavalla Monet tietoliikennejärjestelmät perustuvat epäluotettavaan yhteyteen, joka voi vääristää, hävittää tai toistaa siirrettäviä sanomia. Vääristymiset voidaan muuttaa häviämisiksi tarkistussummia käyttämällä, ja häviämiset ja toistot havaitaan numeroimalla sanomat. Perusratkaisu, liukuvan ikkunan yhteyskäytäntö (sliding window protocol), perustuu matkalla olevien sanomien numerointiin siten, että vastaanottaja voi havaita sanoman katoamisen ja pyytää lähettäjää toistamaan aiempia sanomia. Aina, kun vastaanottaja on saanut yhtenäisen rykelmän peräkkäin numeroituja sanomia, se välittää ne kuluttajalle. Liukuvan ikkunan yhteyskäytäntö Kuittauskanava Tuottaja tieto Lähettäjä Kanava Vastaanottaja tieto Kuluttaja

T-79.179: Johdanto 1-18 Esimerkki: Vaihtuvan bitin yhteyskäytäntö (1/6) Liukuvan ikkunan yhteyskäytäntö on vuonna 1969 julkaistun vaihtuvan bitin yhteyskäytännön yleistys. Vaihtuvan bitin yhteyskäytännössä sanomanumeroita on kaksi: vaihtuvan bitin tilat 0 ja 1. Sekä lähettäjällä että vastaanottajalla on oma käsitys vaihtuvan bitin kulloisestakin tilasta. Lähettäjällä se on muuttujan l arvo, vastaanottajalla muuttujan v. lähettäjä: lähetä sanoma l:llä täydennettynä jos vastaanottaja ei kuittaa l:llä määräajassa, toista sanoma jos vastaanottaja kuittaa l:llä, vaihda l:n tila: l 1 l. vastaanottaja: ota vastaan sanoma ja lähetyshetken l:n arvo b, ja kuittaa b:llä. välitä sanoma ja vaihda v 1 v, jos v = b muutoin unohda sanoma Sanomat ja kuittaukset vuorottelevat linjalla. Väitämme, että yhteyskäytäntö toipuu siitä, että kanava hävittää sanomia tai kuittauksia äärellisen monta kertaa.

T-79.179: Johdanto 1-19 Esimerkki: Vaihtuvan bitin yhteyskäytäntö (2/6): C-koodi Yhteyskäytäntö voidaan toteuttaa kahdella silmukassa kutsuttavalla aliohjelmalla: void abp send (char c) { static char b; do send (data, b, c); while (receive timeout (ack)!= b); b =!b; } char abp receive (void) { static char b expect; char b, c; do b = receive (data, &c), send (ack, b); while (b!= b expect); b expect =!b expect; return c; }

T-79.179: Johdanto 1-20 Esimerkki: Vaihtuvan bitin yhteyskäytäntö (3/6) l=0!sanoma0?kuittaus1 v=0 s0 k0?kuittaus0?kuittaus1?sanoma0!kuittaus1?sanoma1!sanoma0?sanoma0 hävitä sanoma!kuittaus0?kuittaus0 hävitä kuittaus l=1!sanoma1?kuittaus0 o0 o1 s k?sanoma0!kuittaus0?sanoma1!sanoma1?sanoma1 hävitä sanoma!kuittaus1?kuittaus1 hävitä kuittaus v=1 s1 k1 Kuvassa lähettäjän, vastaanottajan ja kanavien toiminta on esitetty siirtymäkaavioina (labelled transition systems) eli kommunikoivina tilakoneina. Huutomerkki kuvaa viestin lähettämistä ja kysymysmerkki vastaanottamista. Samannimiset tapahtumat suoritetaan samanaikaisesti eri tilakoneissa. Kanaviin mahtuu enintään yksi sanoma kerrallaan. Selkeyden vuoksi tuottajan ja kuluttajan toiminta sekä sanomien sisältö on jätetty pois.

T-79.179: Johdanto 1-21 Esimerkki: Vaihtuvan bitin yhteyskäytäntö (4/6): tila-avaruus Sanomien sisältö kiinnostaa sovelluksen käyttäjää, mutta yhteyskäytännön toiminnan kannalta sillä ei ole merkitystä. Mitä vähemmän muistia malli sisältää, sen helpompi sitä on tarkistaa, sillä b bittiä muistavalla järjestelmällä on enintään 2 b tilaa. Sanomien lähettämistä ohjaavat ajastimet on yksinkertaistettu pois. Täysin asynkronisessa järjestelmässä ajastimen ajatellaan voivan laueta milloin tahansa. Laukeamisia voitaisiin rajoittaa mallintamalla ajan kulumista, mutta se hankaloittaisi tarkistamista. Hajautetun järjestelmän tila koostuu sen kaikkien osajärjestelmien tiloista, esimerkiksi {l =0, l =1} {v=0, o0, v=1, o1} {s, s0, s1} {k, k0, k1}. Alussa kukin osajärjestelmä on alkutilassaan, jolloin koko järjestelmän alkutila on esimerkiksi l =0,v=0,s,k.

T-79.179: Johdanto 1-22 Petri-verkot Siirtymäkaavioiden luettavuutta haittaa se, että yksittäiset automaatit ovat täysin sekventiaalisia ja että automaattien väliset tahdistukset on esitetty nimien avulla. Petri-verkot ovat eräänlainen siirtymäkaavioiden yleistys, jossa tahdistukset kuvataan graafisesti: s 1 s 2 t t s 3 s 4 = s 1 s 2 t s 3 s 4 Petri-verkoissa on paikkoja (Stelle; place ) ja siirtymiä (Transition; transition ), joiden välillä on suunnattuja kaaria. Petri-järjestelmän tila koostuu paikallisista tiloista (paikkojen merkinnöistä).

T-79.179: Johdanto 1-23 Esimerkki: Vaihtuvan bitin yhteyskäytäntö (5/6): Petri-verkko?kuittaus1 l =0?kuittaus1?kuittaus0 l =1?kuittaus0 k 1 s?sanoma1 0!sanoma0!kuittaus v=1 2 6 hävitä sanoma s hävitä sanoma v=0!sanoma1 s?sanoma0 1!kuittaus k 0 hävitä kuittaus?sanoma1!kuittaus1?sanoma0!kuittaus0 hävitä kuittaus k

T-79.179: Johdanto 1-24 Merkkipeli (1/2) Petri-järjestelmän tila muodostuu verkon paikkojen sisältämien merkkien määristä. Järjestelmän tila muuttuu virittyneiden siirtymien laukeamisten välityksellä. Siirtymä on virittynyt, jos kussakin siihen kytketyssä esipaikassa on merkki. Kun virittynyt siirtymä laukeaa, sen kustakin esipaikasta poistetaan merkki ja sen kaikkiin jälkipaikkoihin lisätään merkki.

T-79.179: Johdanto 1-25 Merkkipeli (2/2) Järjestelmän käyttäytymistä voidaan nyt kuvata siirtymäketjuilla. Esimerkiksi viestin onnistunut lähetys:!sanoma0?sanoma0!kuittaus0?kuittaus0. Siirtymäketjuista voidaan muodostaa suunnattu graafi, joka kuvaa järjestelmän kaikkia mahdollisia siirtymiä: tila-avaruus: järjestelmän alkutilasta saavutettavissa olevat tilat saavutettavuusgraafi: solmut ovat tiloja ja kaaret tilojen välisiä siirtymiä Merkkipeliä pelaamalla on melko helppoa varmistua vaihtuvan bitin yhteyskäytännön oikeellisuudesta. Tiloja on enintään 2 4 3 3 = 72.

T-79.179: Johdanto 1-26 Vaihtuvan bitin yhteyskäytäntö (6/6): saavutettavuusgraafi Osoittautuu, että tilasta l =0,v=0,s,k saavutettavia tiloja on 18 ja siirtymiä 40:?kuittaus0 l=1, v=1, s,k!sanoma1 hävitä sanoma?kuittaus0 l=1, v=1, s1,k?sanoma0!kuittaus0 hävitä sanoma l=0, v=1, s,k0 hävitä kuittaus!sanoma0 hävitä sanoma l=0, v=1, s0,k0?sanoma0!kuittaus?kuittaus0 hävitä kuittaus hävitä kuittaus hävitä kuittaus?kuittaus0 l=1, v=1, s0,k l=0, v=1, s0,k?sanoma0!kuittaus!sanoma0 hävitä sanoma l=1, v=1, s,k0 l=0, v=1, s,k!sanoma1 hävitä sanoma l=1, v=1, s1,k0?sanoma1!kuittaus1?kuittaus1 l=0, v=0, s,k!sanoma0 hävitä sanoma l=0, v=0, s0,k?kuittaus1 l=1, v=0, s,k1 hävitä sanoma hävitä sanoma!sanoma1 hävitä kuittaus?sanoma1!kuittaus l=1, v=0, s1,k1 hävitä kuittaus hävitä kuittaus?kuittaus1 hävitä kuittaus l=1, v=0, s1,k l=0, v=0, s1,k!sanoma1 hävitä sanoma?sanoma1!kuittaus l=1, v=0, s,k l=0, v=0, s,k1!sanoma0 hävitä sanoma l=0, v=0, s0,k1?kuittaus1

T-79.179: Johdanto 1-27 Sama järjestelmä, monta esitystapaa Rinnakkaisia ja hajautettuja järjestelmiä voidaan kuvata hyvin monella eri tavalla: siirtymäjärjestelmillä tai prosessialgebralla, Petri-järjestelmillä (paikka siirtymä-järjestelmillä tai korkean tason järjestelmillä), jollakin puoliformaalilla määrittelykielellä (kuten UML) tai jollakin ohjelmointikielellä. Esitystapa on järkevää valita kuvattavan kohteen ja halutun tarkkuuden mukaan. Formaalejakin kuvauksia voi esittää monella tavalla: graafisesti, taulukkoina tai tekstinä.