Modellezés Petri hálókkal. dr. Bartha Tamás dr. Majzik István dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék

Hasonló dokumentumok
Petri hálók: alapfogalmak, kiterjesztések

Petri hálók strukturális tulajdonságai Invariánsok és számításuk

Szimuláció. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics. Department of Measurement and Information Systems

Elérhetőségi probléma egyszerűsítése: Állapottér és struktúra redukció Petri-háló alosztályok

Alapszintű formalizmusok

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai

Diszkrét állapotú rendszerek modellezése. Petri-hálók

folyamatrendszerek modellezése

Diszkrét állapotú rendszerek modellezése. Petri-hálók

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

Petri hálók: alapfogalmak, kiterjesztések

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Petri hálók: Alapelemek és kiterjesztések

Petri hálók: Alapelemek és kiterjesztések

Kommunikáció. Kommunikáció. Folyamatok. Adatfolyam-orientált kommunikáció. Kommunikáció típusok (1) Kommunikáció típusok (2) Média. Folyamok (Streams)

Modell alapú tesztelés mobil környezetben

Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Parametrikus tervezés

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Szimuláció. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics. Department of Measurement and Information Systems

Színezett Petri-hálók

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Szállítási réteg (L4)

Dr. Mileff Péter

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Megoldás Digitális technika I. (vimia102) 4. gyakorlat: Sorrendi hálózatok alapjai, állapot gráf, állapottábla

Folyamatmodellezés (BPMN) és alkalmazásai

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Adat és folyamat modellek

Elérhetőségi analízis Petri hálók dinamikus és strukturális tulajdonságai

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

Sztochasztikus Petri-hálók

Automatikus tesztgenerálás modell ellenőrző segítségével

5. Hét Sorrendi hálózatok

Sztochasztikus temporális logikák

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Formális verifikáció Modellezés és modellellenőrzés

Formális modellezés és verifikáció

Forráskód generálás formális modellek alapján

Értékáram elemzés szoftveres támogatással. Gergely Judit Lean-klub

Részletes szoftver tervek ellenőrzése

Nagy bonyolultságú rendszerek fejlesztőeszközei

Hibafelismerés: CRC. Számítógépes Hálózatok Polinóm aritmetika modulo 2. Számolás Z 2 -ben

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Zárthelyi mintapéldák. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Számítógépes Hálózatok 2008

Digitális technika (VIMIAA02) Laboratórium 4

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Programozható vezérlő rendszerek KOMMUNIKÁCIÓS HÁLÓZATOK 2.

UML (Unified Modelling Language)

Specifikáció alapú teszttervezési módszerek

Modellező eszközök, kódgenerálás

Modellek ellenőrzése és tesztelése

Specifikáció alapú teszttervezési módszerek

Digitális technika (VIMIAA02) Laboratórium 4

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Autóipari beágyazott rendszerek. Local Interconnection Network

Hálózatok II. A hálózati réteg torlódás vezérlése

Digitális technika (VIMIAA01) Laboratórium 4

Osztott rendszer. Osztott rendszer informális definíciója

Bevezetés a párhuzamos programozási koncepciókba

Operációs rendszerek. Az X Window rendszer

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Alkalmazott Informatikai Tanszék

Autóipari beágyazott rendszerek. A kommunikáció alapjai

Egyszerű simplex protokoll nyugtákkal

UNIX: folyamatok kommunikációja

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

Újrakonfigurálható eszközök

BPEL nyelvű üzleti folyamatok modellezése és formális ellenőrzése

Szoftverminőségbiztosítás

NETinv. Új generációs informatikai és kommunikációs megoldások

CAD Rendszerek I. Sajátosság alapú tervezés - Szinkron modellezés

Alapszintű formalizmusok

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

Digitális technika (VIMIAA02) Laboratórium 5

Digitális technika (VIMIAA02) Laboratórium 5

Intelligens biztonsági megoldások. Távfelügyelet

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus.

Modell alapú tesztelés: célok és lehetőségek

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

2.előadás. alapfogalmak, formális definíció

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Interaktív, grafikus környezet. Magasszintû alkalmazási nyelv (KAL) Integrált grafikus interface könyvtár. Intelligens kapcsolat más szoftverekkel

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Adatfolyam hálók Dr. Bartha Tamás, Dr. Pataricza András fóliái

III. Alapfogalmak és tervezési módszertan SystemC-ben

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Színezett Petri hálók

Színezett Petri hálók

6. hét: A sorrendi hálózatok elemei és tervezése

Diagnosztika Petri háló modellek felhasználásával

Véges állapotú gépek (FSM) tervezése

Időzített átmeneti rendszerek

Gyártórendszerek dinamikája

IoT alapú mezőgazdasági adatgyűjtő prototípus fejlesztési tapasztalatok

Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Számítógépes Hálózatok. 7. gyakorlat

Folyamatmodellezés (BPMN), adatfolyamhálók

Számítógépes Hálózatok 2012

A villamos hálózatok tréningszimulátoros modellezése. 62. MEE Vándorgyűlés Siófok, Dr. Kovács Attila

Átírás:

Modellezés Petri hálókkal dr. Bartha Tamás dr. Majzik István dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék

Modellező eszközök: DNAnet, Snoopy, PetriDotNet

A DNAnet modellező program Képességei Grafikus szerkesztő Interaktív animáció (token game) Nem interaktív szimuláció (teljesítmény analízishez) Analízisek: egyes dinamikus és statikus tulajdonságok ellenőrzése Előnyei Kicsi, kompakt, gyors, egyszerűen kezelhető Méretéhez képest sokat tud Ingyenes, szabad felhasználású Hátránya Nem túl stabil 3

A DNAnet modellező program képe 4

A DNAnet analízis képességei 5

A DNAnet invariáns keresése 6

A Snoopy modellező program Snoopy (Windows, Linux) Grafikus szerkesztő + token game (animált) Egyszerűen kezelhető Kényelmi funkciók: copy / paste, undo / redo Kiterjesztések: tiltó él, olvasó él, reset él, egyenlőség él Számos háló típus, többek között színezett háló is Támogatja hierarchikus Petri hálók készítését Elemek színezése, méretezése, élsúlyok kijelzése On-line help Külső analízis eszköz: Charlie (Java) 7

A Snoopy modellező program képe 8

Charlie (Java) Analízis eszközök Snoopy-hoz Dinamikus tulajdonságok, elérhetőség Strukturális tulajdonságok, invariánsok Explicit CTL és LTL modellellenőrző INA (Windows, Linux) Szöveges felületű parancssori program Token game (szöveges) Invariáns analízis, elérhetőségi gráf generálás Strukturális tulajdonságok ellenőrzése Szimulációs képességei nincsenek 9

Képességei A PetriDotNet modellező program Grafikus szerkesztő + token game + szimuláció Egyszerűen kezelhető, sok kényelmi funkció Kiterjesztések: tiltó él, időzítés, színezett háló Támogatja hierarchikus Petri hálók készítését Kiegészítő modulokkal bővíthető, pl. analízis modulok Dinamikus tulajdonságok, CTL modellellenőrző Elemek színezése, elforgatása, élsúlyok kijelzése Szabványos PNML fájlformátum, van hozzá INA kimenet Saját fejlesztés: petridotnet.inf.mit.bme.hu 10

A Petri.NET modellező program képe 11

A PetriDotNet analízis képességei

A PetriDotNet invariáns analízis 13

A modellezés alapelvei

A rendszermodellezés célja Informatikai rendszerek: általában jól tagoltak Rendszerépítés a komponensek integrációjával Lépések, folyamatok, szálak, Elemi komponensek kapcsolata: Explicit logikai kapcsolat: sorrendiség, ok-okozati függőség Implicit függőség: pl. osztott erőforrás használata Modell alapú analízis: minőségi vagy/és mennyiségi Kvalitatív: logikai helyességbizonyítás Kvantitatív: teljesítményelemzés, megbízhatóság, rendelkezésre állás, biztonságosság analízise 15

A modellépítés folyamata A három fő modellelem-fajta: Tevékenységek, illetve ezekből álló folyamatok Erőforrások (beleértve: adatok, üzenetek, csatorna) Interakciók a folyamatok és erőforrások között Modellezés: hierarchikus és funkcionális Alulról felfelé: Elemi tevékenységek -> (Összetett tevékenységek ->) Részfolyamatok -> Összetett folyamatok Lépések: Egyedi modellelemek felvétele Integrálás 17

Rendszermodellezés tipikus lépései 1. A folyamat modellje (az erőforrás használat, illetve üzenetváltás részletes feltüntetése nélkül) 2. Az erőforrások modellje A foglalt/szabad/ állapotot jellemző véges automata modellrész Az üzenetek tárolója (ha szükséges) 3. Integrálás: A folyamat és erőforrás modelljében a megfelelő állapotátmenetek összevonása Pl.: Foglalás összevonva a szabad foglalt átmenettel Pl.: Üzenetküldés az üzenetet a csatornába teszi 18

Tevékenységek modellezése Petri-hálókban Elemi tevékenység: tranzíció tüzelése Felhasznált erőforrások: bemeneti / kimeneti helyek Végrehajtási idő determinisztikus időzítésű tranzíció determinisztikus exponenciális időzítésű tranzíció sztochasztikus Az engedélyezettséggel kapcsolatban felmerülő kérdések: Időzítetlen tranzíciók előbb tüzelnek (nagyobb prioritás ) Engedélyezettség megszűnése: mi lesz a tüzelési idővel? Újraindul (újra sorsol): újrakezdi a tevékenységet Megőrzi (már sorsoltat): folytatja a megkezdett tevékenységet 19

Példa: Erőforrás allokáció modellezés Szükséges erőforrás foglalása Kölcsönös kizárás Korlátos kapacitású erőforrás igénybe vétele Folyamat Erőforrás Kölcsönös kizárás megvalósítása Állapotváltozó leolvasása Korlátos erőforrás kapacitás modellezése 20

Példa: Folyamatok közötti kapcsolatok Párhuzamosság Fork és join Szinkron kommunikáció Egymás bevárása Aszinkron kommunikáció Levelesláda jellegű Szinkron kommunikáció Fork (szétválás) Join (egyesülés) Aszinkron kommunikáció 21

Példa: Gyártócella modellezésének modellezési mintái

Szekvenciális feldolgozás: Feldolgozási folyamatok start Activity1 Activity2 End Párhuzamos feldolgozás: Start End Alternatív feldolgozás: Start End 23

Interakciók Szinkronizálás: Megosztott erőforrás: Other Activities Waiting for Resource Process with Resource p1 r p2 24

Véges kapacitású tároló: Tárolók feldolgozáshoz pv Part arrival Part request FIFO tároló: pb 25

Gépek használata Feldolgozás dedikált géppel: Feldolgozás megosztott géppel: 26

Alkatrészek összeszerelése: Szerelés n 1 n 2 Meghibásodás a feldolgozás során: Input buffer pw pb repair failure pr 27

Robotcella Tevékenységek I Tárolók (kapacitáskorlát) Z 1 Erőforrások t 1 M 1 Ciklikus működés t 2 Unload P 1 T M 1 R Stock n Q t 3 load Robot S P 2 M 2 t 4 M 2 Z 2 O 28

Példa Petri háló modellek készítésére: Az alternáló bit protokoll

A modellezési feladat Alternating Bit Protocol Átviteli protokoll veszteséges csatornához Üzenet elveszhet (véges számú alkalommal) Üzenet tartalma nem változhat Cél: a protokoll biztosítsa, hogy minden üzenet (véges számú próbálkozással) eljusson a vevőhöz 30

Küldő folyamat Üzenetekhez egy ellenőrző bitet kapcsol Az üzenetek megérkezését a vevőtől nyugta jelzi, ugyanazzal az ellenőrző bittel Ha a küldött üzenethez csatolt bit b 0, akkor ha az üzenet elvész, a küldő időtúllepéssel észleli a nyugta hiányát újra küldi ha a küldő b 0 bittel ellátott nyugtát kap (ilyet várt), akkor a következő üzenethez b 1 = b 0 negált bitet csatol ha a küldő b 1 = b 0 bittel ellátott nyugtát kap (pedig b 0 bittel ellátott nyugtát várt), akkor eldobja (majd időtúllépés lesz a nyugta hiánya miatt) 31

Fogadó folyamat Az üzenet vételét nyugtázza, a nyugtával a kapott ellenőrző bitet küldi vissza Ha b 0 ellenőrző bittel jelölt üzenetet kap, akkor ezt a b 0 bit visszaküldésével nyugtázza, majd Ha a következő üzenetben az ellenőrző bit értéke b 1 (helyesen), akkor az új üzenetet is feldolgozza és a b 1 bit visszaküldésével nyugtázza Ha a következő üzenetben az ellenőrző bit értéke b 0 (nem megfelelő), akkor az üzenetet eldobja, de nyugtát küld (mondván, hogy bizonyára újraküldés történt a nyugta hiánya miatt) 32

A modellalkotás lépései 1. A feladat felbontása szereplőkre és erőforrásokra 2. Szereplők állapotainak meghatározása 3. Erőforrások, üzenet pufferek állapotainak meghatározása 4. Állapot alapú modellekből Petri-háló modell készítése 5. Szereplők és erőforrások modelljeinek integrálása 6. Integrált modell helyességének ellenőrzése 7. Modell felhasználása a feladat megoldására 33

Komponensek és állapotaik Komponensek (alrendszerek) Szereplők: küldő folyamat, fogadó folyamat Erőforrások: adat csatorna, nyugtázó csatorna Minden komponens saját állapottal rendelkezik Állapotgráf: állapotok körökkel, események nyilakkal Azonos események egy időben mennek végbe: szinkronizáció 34

Küldő folyamat állapotgráfja m1 üzenetet akar küldeni m1-et 0 bittel a csatornába teszi timeout a nyugtára tout(m 1 ) hibás nyugta eldobása drop(a,1) s 0 s 1 put(m 1 ) sdata(m 1,0) s 2 rack(a,1) rack(a,0) sdata(m 2,1) put(m 2 ) s 5 s 4 s 3 helyes nyugta drop(a,0) tout(m 2 ) 35

Fogadó folyamat állapotgráfja m1 üzenetet kapott 0 bittel r 0 rdata(m 1,0) m1 üzenetet feldolgozza r 1 proc(m 1 ) r 2 0 bittel nyugtát küld sack(a,1) drop(m 2,1) drop(m 1,0) r 5 proc(m 2 ) r 4 rdata(m 2,1) r 3 sack(a,0) 0 bittel eldobja (majd nyugtát küld) 36

Adat csatorna állapotgráfja rdata(m 1,0) d 0 sdata(m 2,1) m1 üzenet elvesztése ldata(m 1 ) ldata(m 2 ) d 1 d 2 sdata(m 1,0) rdata(m 2,1) 37

Nyugtázó csatorna állapotgráfja nyugta elvesztése rack(0) lack(0) a 0 lack(1) sack(1) a 1 a 2 sack(0) rack(1) 38

Küldő folyamat Petri háló modellje (fő ciklus) tout(m 1 ) s 0 s 1 put(m 1 ) sdata(m 1,0) s 2 rack(a,1) rack(a,0) sdata(m 2,1) put(m 2 ) s 5 s 4 s 3 tout(m 2 ) 41

Fogadó folyamat Petri háló modellje (fő ciklus) r 0 rdata(m 1,0) r 1 proc(m 1 ) r 2 sack(a,1) sack(a,0) r 5 r 4 r 3 proc(m 2 ) rdata(m 2,1) 42

Adat csatorna és adat átvitel (fő ciklus) 43

Nyugtázó csatorna és nyugtázás (fő ciklus) 44

Kiegészítések Hibás bittel jelölt nyugta eldobása Hibás bittel jelölt nyugta eldobása Hibás bittel jelölt üzenet eldobása Hibás bittel jelölt üzenet eldobása 45

Példa Petri-háló modell analízisére: Alternáló bit protokoll

DNAnet: A modell dinamikus tulajdonságai 47

PetriDotNet: A modell dinamikus tulajdonságai 48

PetriDotNet: Elérhetőségi gráf kirajzolása (GraphViz) 49

PetriDotNet: CTL modellellenőrzés AF(AlterBit.wfa_0>0 & EX(AlterBit.buffer_x>0)) AG(AF(AlterBit.buffer_y>0)) AF(EG(AlterBit.buffer_x=0)) EF(AlterBit.wfa_0>0 & AlterBit.data_x=0) True False True True AF(AlterBit.queue_x>0 & AX(AlterBit.wfa_0>0 & AlterBit.data_x>0)) True 50

PetriDotNet: Invariáns analízis 51

PetriDotNet: P-invariánsok (példák) Komponensek állapotgépei 52

PetriDotNet: T-invariánsok (példák) Ciklikus működések (itt: hibátlan, adatvesztés) 53