T Kevät 2002 Rinnakkaiset ja hajautetut digitaaliset järjestelmät Laskuharjoituksen 5 vastaukset

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

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Johdatus MARIA-työkaluun

Johdatus MARIA-työkaluun ja korkean tason Petri-verkkoihin

T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (Predikaattilogiikka )

Suoritusten seuranta ja opiskelijan edistyminen

Yleinen paikallinen vakautuva synkronointialgoritmi

Suvi Junes Tampereen yliopisto /Tietohallinto 2012

AIKALOGIIKAT TIETOKONEOHJELMIEN VERIFIOINNISSA

Ratkaisu: (b) A = x 0 (R(x 0 ) x 1 ( Q(x 1 ) (S(x 0, x 1 ) S(x 1, x 1 )))).

ja s S : ϕ Υ : M,s ϕ, mutta M,s Q. Erityisesti M, t P kaikilla t S, joten

T Kevät 2006 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

Todistusmenetelmiä Miksi pitää todistaa?

(a) Kyllä. Jokainen lähtöjoukon alkio kuvautuu täsmälleen yhteen maalijoukon alkioon.

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

Suoritusten seuranta ja opiskelijan edistyminen

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

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

Johdatus varianssianalyysiin. Vilkkumaa / Kuusinen 1

Insinöörimatematiikka A

Insinöörimatematiikka A

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 4 / vko 47

2. Jatkoa HT 4.5:teen ja edelliseen tehtavään: Määrää X:n kertymäfunktio F (x) ja laske sen avulla todennäköisyydet

Luento 5. Timo Savola. 28. huhtikuuta 2006

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Taulun avoimista haaroista saadaan kelvolliset lausejoukot

ABHELSINKI UNIVERSITY OF TECHNOLOGY

Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Fourier-analyysi, I/19-20, Mallivastaukset, Laskuharjoitus 7

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Kokonaislukuoptimointi

1. (Jatkoa Harjoitus 5A tehtävään 4). Monisteen esimerkin mukaan momenttimenetelmän. n ne(y i Y (n) ) = 2E(Y 1 Y (n) ).

Ajastin tarjoaa erilaisia toimintoja, kuten "Clock Display", "sekuntikello", "lähtölaskenta", "CountUp", "jaksoajastimen ja "Fight Gone Bad" -ajastin.

T Rinnakkaiset ja hajautetut digitaaliset järjestelmät Prosessialgebra

67-x x 42-x. Matematiikan johdantokurssi, syksy 2016 Harjoitus 3, ratkaisuista

Juuri 11 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty

Adobe Meeting podien käyttö

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT

Kvanttifysiikan perusteet 2017

Ohjelmistojen eta ka ytto

Rekursiiviset palautukset [HMU 9.3.1]

5.3 Ratkeavia ongelmia

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Demo 1: Simplex-menetelmä

Testaa taitosi 1: Lauseen totuusarvo

2. M : T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 11 Ratkaisut 1. M :

TIETORAKENTEET JA ALGORITMIT

mplperusteet 1. Tiedosto: mplp001.tex Ohjelmat: Maple, [Mathematica] Sievennä lauseke x 1 ( mplp002.tex (PA P1 s.2011)

Kvanttifysiikan perusteet, harjoitus 5

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

Kortinhaltijat joilla on maksukeskeytys Maksuryhmään liitettyjen kortinhaltijoiden lukumäärä, joiden maksut ovat tilapäisesti keskeytetty.

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

Matematiikan tukikurssi

Matematiikan ja tilastotieteen laitos Reaalianalyysi I Harjoitus Malliratkaisut (Sauli Lindberg)

Algoritmit 2. Luento 2 To Timo Männikkö

Mathcad 14.0 Single User -asennus

Esko Turunen MAT Algebra1(s)

Site Data Manager Käyttöohje

Tenttiin valmentavia harjoituksia

Inversio-ongelmien laskennallinen peruskurssi Luento 7 8

Algoritmit 2. Luento 5 Ti Timo Männikkö

Ohje digitaalisessa muodossa olevan aineiston siirtoon ja allekirjoittamiseen vaadittavien avainten muodostamisesta

Johdatus matematiikkaan

Rekursioyhtälön ratkaisu ja anisogamia

Algoritmit 2. Luento 2 Ke Timo Männikkö

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 17. marraskuuta 2009

Algebra I, harjoitus 5,

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

1 Ratkaisuja 2. laskuharjoituksiin

Marantz PMD661. Äänittäminen

T Syksy 2003 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

Suhteellisuusteorian vajavuudesta

Testausyhteenveto. DHT Distributed Hash Table. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

PARITUS KAKSIJAKOISESSA

Väliestimointi (jatkoa) Heliövaara 1

Tarkennamme geneeristä painamiskorotusalgoritmia

Site Data Manager Käyttöohje

Numeeriset menetelmät TIEA381. Luento 5. Kirsi Valjus. Jyväskylän yliopisto. Luento 5 () Numeeriset menetelmät / 28

COTOOL dokumentaatio Testausdokumentit

MAT Todennäköisyyslaskenta Tentti / Kimmo Vattulainen

a 2 ba = a a + ( b) a = (a + ( b))a = (a b)a, joten yhtälö pätee mielivaltaiselle renkaalle.

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

Algoritmit 1. Luento 6 Ke Timo Männikkö

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

T Kevät 2003 Logiikka tietotekniikassa: erityiskysymyksiä I Laskuharjoitus 11 Ratkaisut

Malliratkaisut Demot

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

Sivuston tiedotmysiteworthcheck.com

C 2. + U in C 1. (3 pistettä) ja jännite U C (t), kun kytkin suljetaan ajanhetkellä t = 0 (4 pistettä). Komponenttiarvot ovat

Lohkoketjuteknologian hyödyntäminen tiedon oikeellisuuden todistamisessa. Joel Kaartinen,

Transkriptio:

T-79.179 Kevät 2002 Rnakkaiset ja hajautetut digitaaliset järjestelmät Laskuharjoituksen 5 vastaukset 1.3.2002 1. TicketME-algoritm Maria-kuvaus alla: typedef unsigned(1..2 n_of_processes; typedef enum {REM, ENTER, TEST, LEAVE_T, CRIT, RESET, LEAVE_E} process_state; process_state y } process_t; n_of_processes y } turn_t; unsigned(0..#n_of_processes y } ticket_t; place turn turn_t : {1,1}; place procs process_t : n_of_processes x : {x,rem}; place tickets ticket_t : n_of_processes x : {x,nil}; trans try { place {pid,rem}; } out { place {pid,enter}; }; trans enter { place {pid,enter}; place {next,granted}; place {pid,tick}; } out { place (next == granted?{pid,leave_t}:{pid,test}; place {+next,granted}; place {pid,next}; }; trans testtick { place {pid,test}; place {next,granted}; place {pid,tick}; } out { place (is n_of_processes tick == granted?{pid,leave_t}:{pid,test}; place {next,granted}; place {pid,tick}; }; trans crit { place {pid,leave_t}; } out { place {pid,crit}; }; trans exit { place {pid,crit}; } out { place {pid,reset}; }; trans reset { place {pid,reset}; place {next,granted}; place {pid,tick}; } out { place {pid,leave_e}; place {next,+granted}; place {pid,nil}; }; trans rem

{ place {pid,leave_e}; } out { place {pid,rem}; }; (a Olkoon yllä olevan Maria-kuvaus tallennettuna tiedostoon tick.pn. Esitetään omaisuus LTL-kaavana, omaisuus Marian LTL tai reject-kaavana, päteekö omaisuus ja ajoesimerkki malltarkastuksesta. Kaksi prosessia ei koskaan ole samaan aikaan kriittisessä lohkossa: ( (procs( 1,CRIT procs( 2,CRIT []!(is process_t ({1,CRIT},{2,CRIT} subset place procs tai, koska jonk tilan saavuttamattomuus voidaan varmentaa myös rejectkaavalla reject is process_t ({1,CRIT},{2,CRIT} subset place procs; Omaisuus pätee. Tässä on käytetty reject-kaavaa, koska se on laskennallisesti huomattavasti kevyempi ku LTL malltarkastus. Prosessi 1 ei koskaan pääse kriitiseen lohkoon: ( (procs( 1,CRIT []!(is process_t {1,CRIT} subset place procs tai reject-kaavana reject (is process_t {1,CRIT} subset place procs; Omaisuus ei päde. Vastaesimerkki: path 1 /lhome/jhonkola $./maria -b TicketME.pn rejected state @8 rejected state @11 rejected state @16 rejected state @38 rejected state @47 rejected state @54 rejected state @61 rejected state @71 "TicketME.pn": 82 states, 164 arcs @0$path @8 shortest path from @0 to @8 (4 nodes: @0 @1 @4 @8 @0$show @8 {2,1} {2,REM},{1,CRIT} {2,0},{1,1} 2 predecessors path 2 /lhome/jhonkola $ Jos prosessi 1 haluaa päästä kriittiseen lohkoon, se myös pääsee sne lopulta: (procs( 1, ENT ER = procs( 1,CRIT

[]((is process_t {1,ENTER} subset place procs = \ (is process_t {1,CRIT} subset place procs Omaisuus ei päde mallissa. Maria antaa vasta-esimerk, jossa prosessi 2 jatkuvasti suorittaa transitiota testtick, ja prosessi 1 ei pääse koskaan etenemään: path 2 /lhome/jhonkola/ticket $./prop_3./prop_3:5:constructg counterexample./prop_3:5:counterexample path:./prop_3:5: @0 @1 @3 @27 @56 @0$show @27 {2,1} {2,ENTER},{1,LEAVE_T} {2,0},{1,1} @0$show @3 {1,1} {1,ENTER},{2,ENTER} {1,0},{2,0} 2 predecessors @0$show @56 {1,1} {2,TEST},{1,LEAVE_T} {1,1},{2,2} @0$succ @56 transition testtick-@56 pid:2 next:1 granted:1 tick:2

transition crit-@57 pid:1 @0$ Jos prosessi 2 on kriitisessä lohkossa, se myös lopulta poistuu sieltä: (procs( 2,CRIT![](is process_t {2,CRIT} subset place procs Omaisuus ei päde. Maria antaa vasta-esimerk, jossa prosessi 2 on kriittisessä lohkossa, ja prosessi 1 suorittaa jatkuvasti testick transitiota: @0$![](is process_t {2,CRIT} subset place procs (command le:2:constructg counterexample (command le:2:counterexample path: (command le:2: @0 @1 @3 @27 @56 @57 @44 @45 @34 @35 @18 @19 @50 @0$show @50 {2,2} {1,TEST},{2,CRIT} {1,1},{2,2} @0$succ @50 transition testtick-@50 pid:1 next:2 granted:2 tick:1 transition exit-@51 pid:2 path 3 /lhome/jhonkola/ticket $ (b Jaetaan prosessien transition kahteen reiluusjoukkoon, toiseen joukkoon prosess 1 siirtymät ja toiseen prosess 2 siirtymät. Kaikkia reiluusjoukkoja kohdellaan reilusti. Käytetään vahvaa reiluutta, eli jos molemmissa reiluusjoukoissa on äärettömän use vireessä olevia siirtymiä, ni molemmista reiluusjoukoista laukaistaan siirtymä äärettömän use. Saman reiluusjoukon siirtymiä ei välttämättä kuitenkaan laukaista toisisa nähden reilusti. strongly_fair trans try : pid == 1, trans enter : pid == 1,\ trans testtick : pid == 1, trans crit : pid == 1, trans exit : pid == 1,\ trans reset : pid == 1, trans rem : pid == 1; strongly_fair trans try : pid == 2, trans enter : pid == 2,\ trans testtick : pid == 2, trans crit : pid == 2, trans exit : pid == 2,\ trans reset : pid == 2, trans rem : pid == 2;

Jos käytettävä työkalu ei mahdollista reiluusoletusten sisällyttämistä suoraan malli, joudutaan reiluusomaisuudet mallittamaan LTL-kaavana joka lisätään jokaiseen verifioitavaan kaavaan erikseen. Olkoon reiluusoletus φ ja verifioitava kaava ψ. Tällö reiluusoletuksen kanssa verifioitava kaava on muotoa φ = ψ. Reiluusoletuksen lisäämen vaatii yleensä myös lisäyksiä malli. Tässä tapauksessa malli joudutaan lisäämään skeduleri, joka määrää kumpi prosessi voi suorittaa siirtymiä. Reiluusoletuksena käytetään kaavaa joka on Marian LTL kaavana: ( scheduler( 1 scheduler( 2 [](1 subset place scheduler && [] (2 subset place scheduler Kaava määrittää reiluiksi suorituksiksi sellaiset suoritukset joissa molemmat prosessit pääsevät suorittamaan siirtymiä äärettömän monta kertaa. Nyt haluttu kaava saadaan malltarkistettua reiluusoletus huomioon ottaen: Jos prosessi 1 haluaa päästä kriittiseen lohkoon, se myös lopulta sne pääsee: ( scheduler( 1 scheduler( 2 = ( (procs( 1, ENT ER = procs( 1,CRIT (c Kysytty kaava pätee mallissa. Marian esimerkkiajo alla: path 1 /lhome/jhonkola/ticket $cat prop_5 #!./maria graph "TicketME"; translator "./lbt"; ([](is process_t {1,ENTER} subset place procs =\ ((is process_t {1,CRIT} subset place procs; path 2 /lhome/jhonkola/ticket $ls -la TicketME.rg? -rw-rw-r-- 1 jhonkola jhonkola 1124 Mar 1 07:30 TicketME.rga -rw-rw-r-- 1 jhonkola jhonkola 1032 Mar 1 07:31 TicketME.rgd -rw-rw-r-- 1 jhonkola jhonkola 2048 Mar 1 07:31 TicketME.rgh -rw-rw-r-- 1 jhonkola jhonkola 1312 Mar 1 07:31 TicketME.rgp -rw-rw-r-- 1 jhonkola jhonkola 492 Mar 1 07:31 TicketME.rgs path 3 /lhome/jhonkola/ticket $./prop_5./prop_5:5:property holds path 4 /lhome/jhonkola/ticket $ Tässä esimerkkiajossa ei lisätty reiluusoletusta kaavaan, vaan käytetti Marian sisäänrakennettuja reiluusomaisuuksia. Myös seuraava kaava pätee mallissa: ( scheduler( 1 scheduler( 2 = (1 = 0 Kaava on esimerkki reiluus-oletuksesta, joka ei päde järjestelmän yhdellekään suoritukselle. Se sanoo että reiluja ajoja ovat sellaiset ajot, joissa lopulta sekä prosess 1 että 2 skeduloti lopetetaan. Tällaisia ajoja ei mallissa ole! Jos reiluusoletukset joudutaan lisäämään tarkastettavaan kaavaan, on siis oltava tarkkana, että ei käytetä sellaista reiluusoletusta jonka mukaan mikään ajo ei ole reilu.