T-79.179 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

Tehtävä 2: Tietoliikenneprotokolla

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Aikalogiikka

Monimutkaisempi stop and wait -protokolla

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

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

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

Verkon värittämistä hajautetuilla algoritmeilla

Ohjelmistojen mallintaminen, mallintaminen ja UML

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

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

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

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

Monimutkaisempi stop and wait -protokolla

Monimutkaisempi stop and wait -protokolla

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

ELEC-C7241 Tietokoneverkot Kuljetuskerros

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

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

Ohjelmien automaattisen verifioinnin reunamailla

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

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

kynnysarvo (threshold)

kynnysarvo (threshold)

Tietotekniikan valintakoe

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

Turingin koneen laajennuksia

T Ohjelmistojen määrittely- ja suunnittelumenetelmät

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Kuljetuskerros. Tietokoneverkot. Matti Siekkinen Pasi Sarolahti

Markov-ketjut pitkällä aikavälillä

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

Tietokoneen toiminta (Computer Organization I)

811120P Diskreetit rakenteet

Matematiikan ohjelmointi. Joakim von Wright

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

PANKKILINJAN FTP - KUVAUS

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

OHJ-4301 Sulautettu Ohjelmointi

7.4 Sormenjälkitekniikka

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

OSI ja Protokollapino

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra

3. Kuljetuskerros 3.1. Kuljetuspalvelu

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

UML- mallinnus: Tilakaavio

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

811120P Diskreetit rakenteet

Esimerkki 1: Kahviautomaatti.

Määrittelyvaihe. Projektinhallinta

Tutkintovaatimukset suoraan DI-vaiheeseen valituille

Onnistunut Vaatimuspohjainen Testaus

Johdantoluento. Ohjelmien ylläpito

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

ELEC-C5210 Satunnaisprosessit tietoliikenteessä

Korkean resoluution ja suuren kuva-alueen SAR

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

Tietokoneen toiminta (Computer Organization I)

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

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

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

Hieman lisää malleista ja niiden hyödyntämisestä

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

Tietojärjestelmän osat

Stabilointi. Marja Hassinen. p.1/48

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

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

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

Ohjelmoinnin peruskurssi Y1

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Formalisoimme nyt edellä kuvatun laskennan.

11/20: Konepelti auki

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

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

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

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

1. Universaaleja laskennan malleja

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

LIITE. asiakirjaan. komission delegoitu asetus

Kurssin käytännön järjestelyt. Tuotantotalous 1 Tuomo Tanila

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

EMCS-järjestelmän sanomarajapinnan toiminnallinen kuvaus asiakkaille Meeri Nieminen

ITKP102 Ohjelmointi 1 (6 op)

Laskujen muuntaminen tapahtuu, kuten osapuolet ovat keskenään sopineet.

Ohjelmistojen mallintaminen

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Sanomakuvausten järjestelmäkohtaiset tiedostot

Transkriptio:

T-79.179 Rinnakkaiset ja hajautetut digitaaliset järjestelmät Johdanto 19. tammikuuta 2004

T-79.179: Johdanto 1-1 Kevään 2003 opintojakso Luennot: Harjoitukset: Suorittaminen: Esitiedot: TkL, Marko.Makela@hut.fi Jukka Honkola, 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 : : luentokalvot (opintojakson kotisivulta tai opetusmonisteessa) MARIA-käyttöohje: http://www.tcs.hut.fi/software/maria/ Muuta lukemista Tadao Murata: Petri Nets: Properties, Analysis and Applications (opetusmonisteessa) Javier Esparza & Stephan Merz: Model Checking (kurssin kotisivulla) Robin Milner: Communication and Concurrency

T-79.179: Johdanto 1-3 Tiedottaminen Kotisivu http://www.tcs.hut.fi/studies/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-106.530 T-79.146 T-79.185 Reaktiiviset järjestelmät Rinnakkaisohjelmistojen testaus Rinnakkaisohjelmistojen määrittelymenetelmät Sulautetut järjestelmät 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 Vuorottelevan bitin yhteyskäytäntö (1/6) Liukuvan ikkunan yhteyskäytäntö on vuonna 1969 julkaistun vuorottelevan bitin yhteyskäytännön yleistys. Vuorottelevan bitin yhteyskäytännössä sanomanumeroita on kaksi: vuorottelevan bitin tilat 0 ja 1. Sekä lähettäjällä että vastaanottajalla on oma käsitys vuorottelevan 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 Vuorottelevan 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 Vuorottelevan bitin yhteyskäytäntö (3/6)?kuittaus1!sanoma0?sanoma1?kuittaus0?kuittaus0 l =0 l =1?kuittaus1!sanoma1 v =0?sanoma0!kuittaus1 o 1?sanoma1 o 0!kuittaus0 v =1?sanoma0?sanoma0?sanoma1 s 0 s s 1!sanoma0!sanoma1?kuittaus0?kuittaus1 k 0 k k 1!kuittaus0!kuittaus1 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. Nimettömät tapahtumat suoritetaan paikallisesti yhdessä tilakoneessa. Kuvassa näitä tapahtumia ovat katkoviivalla merkityt viestien katoamiset. 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 Vuorottelevan 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,o 0,v=1,o 1 } {s,s 0,s 1 } {k,k 0,k 1 }. 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 Vuorottelevan bitin yhteyskäytäntö (5/6): Petri-verkko?kuittaus1 l =0?kuittaus1?kuittaus0 l =1?kuittaus0 k 1?sanoma1 s 1!sanoma0!kuittaus v=0 2 6 hävitä sanoma s hävitä sanoma v=1!sanoma1 s?sanoma0 0!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 Vuorottelevan bitin yhteyskäytäntö (6/6): saavutettavuusgraafi l =1 v =0 s k 1 l =1 v =0 s 1 k l =1 v =0 k s l =0 v =0 s 0 k l =0 v =0 k s l =1 v =0 s 1 k 1 l =0 v =0 s 1 k l =0 v =0 s k 1 l = 0 Osoittautuu, että Petri-verkkomme tilasta l = v =0 s 0 k 1 0,v=0,s,k saavutettavia tiloja on 18 ja siirtymiä l =0 v =1 s k 0 l =0 v =1 s 0 k l =0 v =1 k s l =1 v =1 s 1 k 40. Aluksi esitettyjen neljän siirtymäjärjestelmän rinnankytkentä on hieman suurempi, sillä Petri- l =1 v =1 k s l =0 v =1 s 0 k 0 l =1 v =1 s 0 k l =1 v =1 s k 0 l =1 v =1 s 1 k 0 verkostamme puuttuvat vastaanottajan välitilat o 0 ja o 1 : vastaanottaja ottaa vastaan sanoman ja lähettää kuittauksen samassa siirtymässä.

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ä.