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

Samankaltaiset tiedostot
Tehtävä 2: Tietoliikenneprotokolla

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

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

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra

Monimutkaisempi stop and wait -protokolla

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

Monimutkaisempi stop and wait -protokolla

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Monimutkaisempi stop and wait -protokolla

» multiaccess channel» random access channel LAN (Ethernet) langaton. ongelma: käyttövuoron jakelu Yhteiskäyttöisen kanavan käyttö

4. MAC-alikerros. yleislähetys (broadcast) ongelma: käyttövuoron jakelu. » multiaccess channel» random access channel LAN (Ethernet) langaton

Johdatus matemaattiseen päättelyyn

Stabiloivat synkronoijat ja nimeäminen

Jaetun muistin muuntaminen viestinvälitykseksi

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

Yleistä. Esimerkki. Yhden palvelimen jono. palvelin. saapuvat asiakkaat. poistuvat asiakkaat. odotushuone, jonotuspaikat

Turingin koneen laajennuksia

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Aikalogiikka

811120P Diskreetit rakenteet

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

Kela Kanta-palvelut Terveydenhuollon todistusten välitys Toiminnalliset prosessit

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

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

Algoritmit 1. Luento 9 Ti Timo Männikkö

Itsestabiloivabysanttilainen yhteisymmärrys. Timo Virkkala

3. Kuljetuskerros 3.1. Kuljetuspalvelu

kynnysarvo (threshold)

kynnysarvo (threshold)

Ohje EmvCard -ohjelmistoon tehtävistä asetusmuutoksista OP-korttitilityspalvelun siirtyessä OP-Pohjolan lisensseille

Miten osoitetaan joukot samoiksi?

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Tietotekniikan valintakoe

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

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

811120P Diskreetit rakenteet

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Formalisoimme nyt edellä kuvatun laskennan.

Sähköisten aineistojen välityspalvelu (Liite 2)

Stabilointi. arvosana. arvostelija. Marja Hassinen

LUKUTEORIA johdantoa

PANKKILINJAN FTP - KUVAUS

Täydentäviä muistiinpanoja laskennan rajoista

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

Palvelukuvaus. Maksupääte

Tarkennamme geneeristä painamiskorotusalgoritmia

Tuloperiaate. Oletetaan, että eräs valintaprosessi voidaan jakaa peräkkäisiin vaiheisiin, joita on k kappaletta

Algoritmi on periaatteellisella tasolla seuraava:

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

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Ohjelmoinnin perusteet Y Python

ELEC-C7241 Tietokoneverkot Kuljetuskerros

5. Siirtoyhteyskerros linkkikerros (Data Link Layer) 5.1. Kaksipisteyhteydet. Kehysten kuljetus. Missä virhe hoidetaan? Virheet.

Shorin algoritmin matematiikkaa Edvard Fagerholm

Vuonohjaus: ikkunamekanismi

Harjoitustyön testaus. Juha Taina

Johdatus matematiikkaan

3. Kuljetuskerros 3.1. Kuljetuspalvelu End- to- end

Yhteydettömän kieliopin jäsennysongelma

Ohjelmistojen mallintaminen, mallintaminen ja UML

MS-A0004/MS-A0006 Matriisilaskenta Laskuharjoitus 6 / vko 42

3. Kuljetuskerros 3.1. Kuljetuspalvelu

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

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

Reaalilukuvälit, leikkaus ja unioni (1/2)

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

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

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

Algoritmit 2. Luento 13 Ti Timo Männikkö


Ratkaisut 2. KJR-C2001 Kiinteän aineen mekaniikan perusteet, IV/2016. Tehtävä 1 Selitä käsitteet kohdissa a) ja b) sekä laske c) kohdan tehtävä.

Lisää reititystä. Tietokoneverkot 2009 (4 op) Syksy Futurice Oy. Lisää reititystä. Jaakko Kangasharju

Stabilointi. Marja Hassinen. p.1/48

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Johdanto

Lisää reititystä. Tietokoneverkot 2008 (4 op) Syksy Teknillinen korkeakoulu. Lisää reititystä. Jaakko Kangasharju

Rajoittamattomat kieliopit (Unrestricted Grammars)

Ilmoitus saapuneesta turvasähköpostiviestistä

Todistusmenetelmiä Miksi pitää todistaa?

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Algoritmit 2. Luento 13 Ti Timo Männikkö

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Johdanto

Ratkeavuus ja efektiivinen numeroituvuus

Hae sopivin kuljetustapa

Algoritmit 1. Luento 10 Ke Timo Männikkö

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

811312A Tietorakenteet ja algoritmit I Johdanto

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 2: Usean muuttujan funktiot

Kombinatorinen optimointi

TOIMINNALLINEN MÄÄRITTELY MS

Tulevaisuuden Internet. Sasu Tarkoma

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

sertifikaattiratkaisu Apitamopki

TCP. TCP-optiot. Erilaisia suorituskykyongelmia. Aikaleima (timestamp) TCP:n peruspiirteiden toiminta tarkemmin. TCP:n uusia piirteitä.

Transkriptio:

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

1.1. Lähtökohta Keskeisiä käsitteitä: siirtymäsysteemit spesiointikielet Estelle (vanhempi spesiointikieli, paljon Pascalin piirteitä) Prosessialgebroihin perustuvia: Lotos CCS (A Calculus of Communicating Systems, Milner) CSP (Communicating Sequential Processes, Hoare) Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 2

1.2. Yhteistilaverkko Hajautetun algoritmin yksittäinen prosessi usein yksnkertainen Usean prosessin muodostamaa systeemiä voi olla hankala analysoida Hajautetussa järjestelmässä uudenlaisia virhetilanteita: lukkiumia eläviä lukkiumia Reiluus Lomitusemantiikkaa Yhteistilaverkon tilaräjähdys Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 3

1.3. Ekvivalenssipohjainen veriointi Miten yhteistilaverkosta voi löytää virheitä: Lukkiumat paljastuvat jo yhteistilaverkkoa muodostettaessa Elävät lukkiumat vastaavat yhteistilaverkon komponentteja, joista ei päästä enää takaisin pääsykliin, esimerkiksi alkutilaan. Tällaiset lukkiumat löydetään vaikkapa syvyyssuuntaisen etsinnän avulla. On kuitenkin virhetilanteita, joita on vaikea nähdä pelkästään yhteistilaverkkoa analysoimalla. Esimerkiksi voi olla haitallista, jos tietyt tapahtumat sattuvat väärässä järjestyksessä. Väärän järjestyksen havaitseminen edellyttää, että yhteistilaverkon suoritusjälkiä verrataan sallittuihin suoritusjälkiin. Sallitut suoritusjäljet täytyy esittää jollakin tavalla. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 4

Ekvivalenssipohjaiseen verioinnin lähtökohta: Systeemin toimintaa voidaan usein kuvata ulkopuolisen havaitsijan kannalta Havaitsija näkee vain sen, mitä tapahtuu systeemin, tai oikeammin tässä yhteydessä protokollan, rajapinnalla sen kommunikoidessa protokollaa käyttävien prosessien kanssa Rajapinnan toimintaa voidaan myös kuvata siirtymäsysteemillä Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 5

Eksivalenssipohjaisessa verioinnissa pyritään osoittamaan, että protokolla täyttää palvelun. Miten? Protokollan toiminta mallinnetaan ensin jollain spesiointikielellä. (Jokainen protokollan prosessi, esimerkiksi lähettäjä, vastaanottaja ja ajastin, kuvataan spesiointikielellä) Muodostetaan systeemiä vastaava yhteistilaverkko (iso siirtymäsysteemi, muodostetaan ohjelmistolla) Yhteistilaverkon kaarissa näkyvät tapahtumat, jotka protokolla suorittaa. (tapahtumista piilotetaan kaikki muut kuin rajapinnan tapahtumat) Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 6

1.4. Mallintarkistus Vaihtoehto ekvivalenssipohjaiselle verioinnille Miten? Aikalogiikan kaavoilla ilmaistaan systeemiltä vaadittavat ominaisuudet Rakennetaan systeemistä malli (siirtymäsysteemi tai verkko) Tutkitaan, pätevätkö logiikan kaavat tuossa mallissa Kaksi tunnetuinta ja useimmiten käytettyä logiikkaa ovat: Lineaarisen ajan logiikka (LTL, Linear Time Logic) Haarautuvan ajan logiikka (CTL, Computation Tree Logic). Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 7

1.5. Käytännön kokemuksia Sovellukset ovat pääsiassa syntyneet yliopistojen tutkimusprojekteissa. Teollisuus on jossain määrin kiinnostunut formaaleista menetelmistä (Intel, piirisuunnittelu) Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 8

2. Tilasiirtymäsysteemit Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 9

2.1. Vuorottelevan bitin protokolla Vuorottelevan bitin protokolla (alternating bit protocol, AB-protokolla): Lähettäjäprosessi S ja vastaanottajaprosessi R vaihtavat sanomia virhealttiin vuorosuuntaisen kanavan välityksellä. Vuorosuuntainen kanava sallii sanomien lähettämisen yhteen suuntaan kerrallaan, mutta ei molempiin suuntiin yhtäaikaa. Kanava voi vääristää tai hukata minkä tahansa sen kautta lähetetyn sanoman. Sanomien järjestys säilyy kanavassa. Kanava ei monista sanomia. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 10

Sanoman vastaanottaja pystyy erottelemaan vääristyneet sanomat virheettömistä esimerkiksi CRC-kentän avulla niin suurella todennäköisyydellä, että seuraavissa tarkasteluissa voidaan olettaa kaikkien vääristyneiden sanomien paljastuvan. Vastaanottajaprosessi R kuittaa virheettömänä perille saapuneen datasanoman d S:lle kuittauksella a. (Negatiiviset kuittaukset eivät ole käytössä; vääristynyt sanoma ei aiheuta kuittaustoimenpidettä.) Siten protokollan perustoimintaa voidaan kuvata kaaviolla S a a d d.. R Lähettäjän täytyy siis odottaa kuittausta, ennen kuin se lähettää uuden sanoman. Ongelma: Mitä tapahtuu jos kuittaus häviää? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 11

Lähettäjä ei lähetä enää mitään, vaikka uusia datasanomia olisikin odottamassa lähettämistä Ratkaisu: Ajastin, joka laukeaa, jos kuittausta ei kuulu tietyn ajan kuluessa Eräs protokollaan liittyvä skenaario voisi olla nyt seuraava: a d S timeout a d a d R Tulee kuittaussanomien käytöstä uusia ongelmia? Entä jos kuittaus häviää? Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 12

Monistumisriski: S saattaa lähettää datasanoman d uudestaan arvellen sen tulleen hylätyksi linjavirheen vuoksi, vaikka d onkin tullut virheettömänä perille. Ratkaisu: Numeroidaan sanomat (numerot 0 ja 1 riittää) Siten edellinen skenaario tuleekin kirjoittaa muodossa: d0 a0 S timeout d1 a1 d1 a1 R Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 13

Mallinnetaan seuraavaksi lähettäjä ja vastaanottaja siirtymäsysteemeinä. Mallinnuksessa täytyy ratkaista aluksi muutamia yksityiskohtia: Merkitäänkö kunkin tapahtuman yhteyteen, onko se lähetys- vai vastaanottotapahtuma? Siirtymäsysteemissä ei merkitä tapahtumiin, ovatko ne lähetyksiä vai vastaanottoja. (Vasta spesiointikielessä) Miten ajastin mallinnetaan? Tällä kertaa yhdellä siirtymällä lähettäjäprosessissa. Miten mallinnetaan sanoman katoaminen tai vääristyminen? Sisäisellä tapahtumalla τ Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 14

Lisäksi käytämme epädeterminismiä. Näillä sopimuksilla lähettäjä S ja vastaanottaja R ovat tilasiirtymäkaavioina: d1 R1 a1 τ R4 d1 S1 a1 S4 d0 d1 t d0 τ t d1 τ R2 a0 τ R3 S2 a0 S3 d0 d0 Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 15

2.2. Asiakas/palvelin-systeemi Järjestelmä koostuu: Palvelinprosessista S Asiakasprosesseista C i, i = 1,, n Asiakas C i pyytää palvelua S:ltä sanomalla csi. S lähettää vastauksen sbi puskuriin B i. Asiakas C i voi noutaa vastauksen sanoman bci avulla. Protokolla noudattaa round robin-periaatetta. Tämä tarkoittaa, että vuoromerkki kiertää asiakkaalta toiselle. Aina kun asiakas saa vuoromerkin, se pyytää palvelua. Tämän Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 16

jälkeen se luovuttaa vuoromerkin seuraavalle. Vuoromerkki toteutetaan sanomien avulla. Kun asiakas C i vastaanottaa sanoman ti, se voi pyytää palvelua. Tämän jälkeen se lähettää sanoman t(i + 1) asiakkaalle C i+1. Yhteenlasku tässä tapauksessa tulkitaan niin, että n + 1 = 1. Asiakas C i siirtymäsysteeminä: t(i+1) C4 bci C1 ti C2 csi C3 bci C5 t(i+1) Alkutila on C1 paitsi C 1 :ssä, jossa se on C2. Tällöin round robin alkaa C 1 :stä. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 17

Palveluprosessi S ja puskuriprosessi B i : S1 cs1 sb1 sbn cs2 Sn S0 S2.. csn sb3. S3 cs3 sb2 B1 sbi bci B2 Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 18

2.3. Tilasiirtymäsysteemin määritelmä Lähtökohtana on malli, jossa hajautettu järjestelmä koostuu kahdesta tai useammasta prosessista. Prosessilla tarkoitetaan tässä yhteydessä suurin piirtein samaa kuin käyttöjärjestelmien yhteydessä: Prosessi on ohjelma, jonka suoritus on alkanut, mutta ei vielä pysähtynyt. Samasta koodista voidaan synnyttää useita prosesseja. Prosessi etenee diskreetein askelin tilasta toiseen; tila määräytyy muuttujien arvoista ja seuraavaksi suoritettavasta käskystä (tai käskyistä sallimme kuvauksissa epädeterminismin). Prosessin eteneminen tapahtuu suorittamalla jokin tapahtuma, joka voi olla esimerkiksi sisäinen laskenta (muuttujien päivitys yms.), Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 19

sanoman lähetys tai vastaanotto, jokin muu tapahtuma, jossa on mukana toisia prosesseja. Esimerkki viimeksi mainitusta on mm. synkronointi. Synkronointia voi tietenkin tapahtua myös lähetyksen ja vastaanoton yhteydessä. Yleensä hajautettujen järjestelmien kuvaus siirtymäsysteemeillä tapahtuu korkealla abstraktiotasolla. Se tarkoittaa käytännössä, että huomiota kiinnitetään ennen kaikkea prosessien keskinäiseen kommunikointiin. Prosessien sisäistä toimintaa pyritään pelkistämään usein mahdollisimman paljon. Spesiointikielet tosin tarjoavat välineitä monipuoliseen sisäisen laskennan kuvaamiseenkin, kun taas tavallisen siirtymäsysteemin yhteydessä sisäinen laskenta täytyy häivyttää melko täydellisesti. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 20

Määritelmä 1. Siirtymäsysteemi on rakenne (S, A,, s 0 ), missä S on tilojen joukko; A on tapahtumien joukko, joka myös sisältää näkymättömän tai sisäisen tapahtuman τ ; S A S on siirtymärelaatio; s 0 on alkutila. Usein S ja A ovat äärellisiä, mutta periaatteessa ne voivat olla myös numeroituvasti äärettömiä. A:n alkiot edustavat tapahtumia, joiden yhteydessä prosessit eli tässä tilasiirtymäsysteemit vaihtavat tietoa. Huomattakoon, että tässä formalismissa ei yksittäisen prosessin yhteydessä erotella, onko kysymyksessä lähetys vai vastaanotto. Siirtymäsysteemi voitaisiin määritellä niin, että tämä otettaisiin huomioon, mutta tavoitteenamme on Lotosta vastaavat siirtymäsysteemit, joissa riittää yllä esitetty rakenne. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 21

Siirtymäsysteemistä voidaan lukea, miten prosessi etenee suorituksen aikana. Toiminta lähtee liikkeelle alkutilasta s 0. Siirtymärelaatio määrittelee, mitkä vaihtoehdot tilassa tulevat seuraavaksi suoritusvuoroon. Tilasiirtymäsysteemien käyttö hajautetujen järjestelmien kuvaamisessa käy parhaiten selville esimerkeistä, joista pari on jo esitelty. Ensimmäisen luvun lopuksi esitellään vielä merkintöjä, joita tarvitaan jatkossa. 1. Jos siirtymäsysteemissä (s 1, a, s 2 ), niin tavallisesti kirjoitetaan s 1 a s 2. 2. Jos tilasta s 1 alkaa τ -polku s 1 τ τ τ s 2 s n, ε ε niin merkitään s 1 = s n. Merkintä = käsittää myös tapauksen, että tilasta ei siirrytä mihinkään. Siis aina pätee s 1 ε = s 1. 3. Merkintä s 1 τ = s n tarkoittaa, että s 1 = s k s r = s n. ε τ ε Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 22

4. Tapahtumajono u = a 1 a 2 a n johtaa tilasta r tilaan s, jos on olemassa polku Tällöin merkitään r u = s. r= r ε a 1 ε a 1 s 1 = r 2 ε ε a 2 s 2 = = r n ε n s n = s. Spesioinnin ja verioinnin perusteet. Päivi Kuuppelomäki 2008 23