Alapfogalmak - rendszermodellek

Slides:



Advertisements
Hasonló előadás
Készítette: Kosztyán Zsolt Tibor
Advertisements

Események formális leírása, műveletek
Készítette: Kosztyán Zsolt Tibor
KÉSZÍTETTE: Takács Sándor
A MINŐSÉG MEGTERVEZÉSE
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
ADATBÁZISOK.
A tevékenységhosszak és az erőforrás- mennyiségek kapcsolata Készítette: Szentirmai Róbert (minden jog fenntartva)
Hatékonyságvizsgálat, dokumentálás
Adatbázis-kezelés.
Rendszertervezés GIMP.
Függvények Egyenlőre csak valós-valós függvényekkel foglalkozunk.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
2. Rendszer fejlesztés
FORMÁLIS MÓDSZEREK NGM_IN003_1
Kötelező alapkérdések
Kalman-féle rendszer definíció
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
Bayes hálók október 20. Farkas Richárd
MI 2003/ Alakfelismerés - még egy megközelítés: még kevesebbet tudunk. Csak a mintánk adott, de címkék nélkül. Csoportosítás (klaszterezés, clustering).
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Papp Róbert, Blaskovics Viktor, Hantos Norbert
Determinisztikus véges automaták csukva nyitva m s kbsm csukva nyitva csukva nyitva csukvanyitva 1. Példa: Fotocellás ajtó s b m m= mindkét helyen k= kint.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
Szélességi bejárás A szélességi bejárással egy irányított vagy irányítás nélküli véges gráfot járhatunk be a kezdőcsúcstól való távolságuk növekvő sorrendjében.
INFORMATIKA E-management E-business E-gyártás. Információ alapú gazdálkodás E-management E-business E-gyártás – E-minőségirányítás.
Evolúciósan stabil stratégiák előadás
Dinamikus klaszterközelítés Átlagtér illetve párközelítés kiterjesztése N játékos egy rácson helyezkedik el (periodikus határfeltétel) szimmetriák: transzlációs,
Szoftvertechnológia Szoftvergyártás 2..
Szoftvertechnológia Rendszertervezés.
Készítette: Kosztyán Zsolt Tibor
Objektumorientált tervezés és programozás II. 3. előadás
Végrehajtási, nyomon követési fázis Készítette: Szentirmai Róbert (minden jog fenntartva)
Készítette: Gergó Márton Konzulens: Engedy István 2009/2010 tavasz.
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Idősor elemzés Idősor : időben ekvidisztáns elemekből álló sorozat
Gazdaságstatisztika 11. előadás.
VÉGES AUTOMATA ALAPÚ TERVEZÉSI MODELL
Érvelés, bizonyítás, következmény, helyesség
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
Termelő-fogysztó modell. A probléma absztrakt megfogalmazása: informális leírás. Adott egy N elemű közösen használt tároló, N  1. Adott a folyamatoknak.
Hibaterjedés-analízis
Az üzleti rendszer komplex döntési modelljei (Modellekkel, számítógéppel támogatott üzleti tervezés) II. Hanyecz Lajos.
Az ábrán az inicializáló blokk lefutása utáni állapotot láthatjuk. A KÉSZ halmazhoz való tartozást színezéssel valósítjuk meg. A nem KÉSZ csúcsok fehérek,
LOGISZTIKA Előadó: Dr. Fazekas Lajos Debreceni Egyetem Műszaki Kar.
Budapest University of Technology and Economics Department of Measurement and Information Systems Monitor komponensek fejlesztése okostelefon platformra.
Adamkó Attila UML2 Adamkó Attila
Szabályozási Rendszerek 2014/2015 őszi szemeszter Előadás Automatizálási tanszék.
Információs rendszer fejlesztése 4. előadás
Programozás, programtervezés
Valószínűségszámítás II.
Többdimenziós valószínűségi eloszlások
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
Szimuláció.
Haladó C++ Programozás Programtervezési minták – alapok Sonkoly Balázs
PPKE ITK 2005/06 tanév 7. szemeszter Őszi félév Távközlő rendszerek forgalmi elemzése Tájékoztatás GY. - 8.
INFOÉRA Gráfok, gráfalgoritmusok II. (Horváth Gyula és Szlávi Péter előadásai felhasználásával) Juhász István-Zsakó László: Informatikai.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
1 Megerősítéses tanulás 4. előadás Szita István, Lőrincz András.
HÁLÓZAT Maximális folyam, minimális vágás
Szoftvermenedzsment A szoftver fogalma programmodulok rendszerdokumentáció konfigurációs adatok, és ezeket tároló fájlok felhasználói dokumentáció a szoftver.
KONFIGURÁCIÓKEZELÉS è A projektirányítás a költségekkel, erőforrásokkal és a felhasznált idővel foglalkozik. è A konfigurációkezelés pedig magukkal a termékekkel.
Programozási alapok.
Kockázat és megbízhatóság
Példa: Dinteger = {..., -1,0,1,...}; Dboolean = {true, false};
Grosz Imre f. doc. Sorrendi áramkörök
Algoritmus készítés.
Előadás másolata:

Alapfogalmak - rendszermodellek Formális módszerek I Alapfogalmak - rendszermodellek Formális módszerek Takács Márta Óbudai Egyetem, NIK, IMRI

A rendszer fogalma A rendszer meghatározott cél érdekében működő egység - egymással kölcsönhatásban lévő elemek meghatározott totalitásként megjelenő sokasága. A rendszer elemei szervezetten kapcsolódnak egymáshoz: fizikai vagy fogalmi entitások, mely kölcsönhatásai révén részt vesznek a rendszerhez tartozó új minőségek létrehozásában.S. Bármely rendszer leírása során: meg kell határozni a rendszer elemeit és tulajdonságaikat, fel kell tárni az elemek közötti kapcsolatokat, le kell írni, hogy az elemek és a közöttük fennálló kapcsolatok halmazából hogyan válik rendszer. Formális módszerek

A rendszer modellje ezért foglalkozik: A szereplőkkel (ágensek) Kapcsolatrendszerükkel (statikus) Működésükkel (dinamizmus) Formális módszerek

A rendszer életciklusai Tervezés (specifikáció): egyértelmű, érthető, teljes, ellentmondás-mentes modell és terv együttműködés és inter-diszciplináris megközelítés megbízható szolgáltató és jó kommunikáció megrendelő és kivitelező között (később is) Fejlesztés (implementáció): bizonyítottan helyes rendszermodell: verifikáció validáció Egyensúly minőség  költség  idő között Automatizálás, moduláris szerkezet, komponens integráció Fenntartás - fenntarthatóság iteratív folyamat, több életciklus, fokozatos finomítás Formális módszerek

További általános elvárások Informatikai háttér és a szolgáltatás minősége ISO és egyéb szabványoknak való megfeleltetés csak termékminőség reprodukálás konstrukció helyett Hibátlan, érthető, átlátható specifikáció (dokumentálás) Zárt, ellentmondás-mentes, megfelelés Hibátlan implementáció minősített (és lehetőleg automatizált) fejlesztés ellenőrizhető (validáció, automatikus tesztgenerálás) Megállapodás alapján folyamatos fenntartás, visszacsatolás Formális módszerek

Általános lépések Igény felmérés, eszköz- és környezetfelmérés Modell készítés és működés tesztelés Üzembe helyezés és fenntartás Többféle modell születik ezen elvek alapján Ábrák forrása: Dr. Pataricza András Formális módszerek

IT rendszerfejlesztés ciklusai Követelményanalízis Probléma Mi a megoldandó probléma? Milyen megoldási módszerek/ eszközök léteznek? Koncepciótervezés Rendszertervezés Hogyan oldható meg a feladat? Implementáció Hogyan valósítható meg a feladat megoldása? Implementáció Formális módszerek Tesztelés Megoldottuk a problémát? A megrendelő megfelelőnek tartja a kész rendszert? Üzembehelyezés Üzemeltetés, karbantartás Továbbfejlesztés szükséges? Fenntarthatóság

Vízesés modell Koncepció tervezés Rendszer allokáció Követelmény Implementáció Formális módszerek Verifikáció & Validáció Telepítés Üzemeltetés & Karbantartás

V modell kompozíció dekompozíció verifikáció verifikáció Formális módszerek dekompozíció

Verifikáció és validáció szerepe jól építjük-e a rendszert? Validáció: jó rendszert építünk-e? Specifikáció1 transzformáció, finomítás Formális módszerek t1 Specifikáció2 Rendszer2 Specifikáción Rendszern verifikáció Implementáció

Verifikáció és validáció, prototípusok, tesztelés Az eddigi modellek „egy-verziós” életciklust írnak le, de a rendszerfejlesztés iteratív:prototípus  felfedett hibák  továbbfejlesztés  új prototípus Formális módszerek

Boehm-féle spirál modell CÉLOK, ALTERNATÍVÁK, KORLÁTOZÁSOK MEGHATÁROZÁSA Kockázati tényezők felmérése ls kezelése Formális módszerek Tervezés, itteráció FEJLESZTÉS ÉS TESZTELÉS

Hogyan modellezzünk, milyen eszközökkel? Legyen formalizálható szintaktikailag és interpretációja ellenőrizhető szemantikailag Legyen matematikai eszközrendszere Legyen szoftvermegvalósítása Továbbá: Írjunk hibátlan feladat- és rendszerspecifikációt Modulárisan építkezve törekedjünk a komponensek együttműködésére, a statikus (strukturális) és dinamikus modellekben is A matematikai leírás legyen funkcionális és strukturális (célszerűen grafikus formában) A végrehajthatóság és ellenőrizhetőség (Validáció Verifikáció) szempontjai: konzisztencia, ellentmondás-mentesség teljesség, zártság verifikáció: modellek között validáció: a modellek és a rendszer között Formális módszerek

Problémák A valósághű modellezés komplex (modellméret, állapottér méret), „kisméretű” problémákra átlátható, aztán bonyolódik Megoldandó az időkezelés ( hibrid, idővariáns, nemlineáris) környezetmodellezés (modellbázisú / nem modell bázisú) A sokféle matematikai területről, nehéz matematikai jelölésrendszer - a matematikai algoritmus hatékonysága ellenőrizendő speciális ismeretekre van szükség a felhasználótól: a modellező és a megrendelő összehangolt munkájára van szükség Általában: diszkrét állapotú, diszkrét idejű, diszkrét eseményterű rendszerek modellezése lehetséges Sokféle nyelv, hatékonyságuk, kifejezőerejük változó (pl. UML) Formális módszerek

Források Dr. Pataricza András, dr. Bartha Tamás, Majzik István előadásai (BME Méréstechnika és Információs Rendszerek Tanszék) Pataricza, A., Formális módszerek az informatikában. Typotex, 2004. Formális módszerek

Óbudai Egyetem, NIK, IMRI Formális módszerek II Peri hálók Formális módszerek Takács Márta Óbudai Egyetem, NIK, IMRI

rendszerek modellezésére. A Petri-hálók egyidejűleg nyújtanak grafikus és matematikai reprezentációt Konkurens (benne egyidejűleg működő, önálló egységek kommunikálnak egymással úgy, hogy ezen egységek egymáshoz képest tetszőleges működési fázisban vannak) Aszinkron (eseményvezérelt rendszer) Elosztott (egyes rendszerelemek között funkcionális tagolódás van, azaz valamilyen megegyezés arról, ki milyen feladatot lásson el a teljes és hatékony működés érdekében) Párhuzamos (konkurens párhuzamos rendszerek a rendszerelemek között szoros szinkronizáció áll fenn) nemdeterminisztikus és/vagy sztochasztikus (egy-egy adott állapotából nem egyértelmű, melyik állapot lesz a következő) rendszerek modellezésére. Formális módszerek

Carl Adam Petri (1926-2010) Petri a 60-as évek elején publikálta a róla elnevezett módszert. Struktúrával fejezi ki a vezérlést és az adatszerkezetet egyaránt. Előnye, hogy minden más ábrázolásmód kiteríthető Pethi-hálóvá, hátránya: már egyszerű feladatok leírása is hatalmas hálót eredményez. Kiforrott matematikai háttére miatt ez a leírásmód rendkívül hatékony eszköz lehet rendszerek analízisére, ha a rendszer modelljét valamely kompaktabb modellezésből automatikusan származtatjuk. Formális módszerek

Petri hálók struktúrája Strukturálisan: irányított, súlyozott, páros gráf Kétféle csomópont: hely: p  P tranzíció: t  T Irányított élek (páros gráf): hely  tranzíció tranzíció  hely e  E : (P  T )  (T  P ) Formális módszerek 2

Dinamikus működés, tokenekkel Petri STRUKTÚRA Dinamikus működés, tokenekkel PN = < P, T, E, W, M0> Formális módszerek = 3

Dinamikus működés állapotváltozókkal Állapotjelölő token („szereplő”) A ely állapotát jellemzi a benne levő tokenek száma Hálózat állapota: az egyes helyek állapotainak összessége Állapotvektor: a p = |P | (pozicíók halmazának számossága) komponensű M token eloszlás vektor Az mi komponense a pi helyen található tokenek száma Formális módszerek 2 3 Kezdőállapot: M0 kezdő token elosztás

Rendszer állapotváltozásainak modellezése Állapot megváltozása: tranzíciók „tüzelése” engedélyezettség vizsgálata tüzelés végrehajtása tokenek elvétele a bemeneti helyekről tokenek kirakása a kimeneti helyekre megváltozott token eloszlás vektor új állapotot eredményez Formális módszerek 2 Megjegyzés: a forrás tranzíciónak nincs bemenete, és mindig képes tüzelni, a nyelő tranzíciónak nincs kimenete, így a tüzelés során a hozzá érkező tokeneket „elnyeli”. 3

Példa A P1 állapotban 3, a P2-ben 1, P3-ban 0 token van. A T1 tranzíciónak két bemenő (P1-ből és P2-ből), és két kimenő (P2-be és P3-ba) éle van. Két élnek van 1-től különböző súlya: a P1T2 él 2, a T2P1 él 3 súlyú. állapotátmenet helyett tüzelés: az a folyamat, amely során a tokenek ide-oda vándorolnak a hálón belül. Egy tranzíció akkor tüzelhet, ha az összes bemenő éléhez csatlakozó helyen van legalább annyi token, amennyi az adott él súlya. A következő tüzelő tranzíció a T1 lesz Formális módszerek

Hogyan néz ki a fenti háló a T1 tranzíció tüzelése után? Formális módszerek T1 és T2 állapot tüzelhető. ??? Ha egyszerre több tranzíció is tüzelhetővé válik, akkor is egyetlen tranzíció tüzel a következő alkalommal (a következő logikai időpillanatban), de hogy melyik, az előre teljesen kiszámíthatatlan (a Petri-háló nemdeterminisztikus működése).

A T1 tüzelése után Formális módszerek T2 tüzelése után

megegyezik a kiinduló tokeneloszlással -T2 tranzíció ismét nem képes tüzelésre -ha a T1 tranzíció még egy alkalommal tüzel, akkor a P1 helyen nem marad több token, a háló holtpontba (deadlock) kerül Formális módszerek megegyezik a kiinduló tokeneloszlással

Matematikai formalizmus Egy adott token-eloszlást az az M vektor jelöl egy adott állapotban M0 a kezdeti állapotot jelöli Formális módszerek T1 tüzelése után

Mit látunk a működés alapján? A Petri háló: nemdeterminisztikus véges automata állapotvektor: token eloszlás vektor Állapot-átmeneti függvény: tranzíciók Felépítése: egy-egy hely  egy-egy logikai feltétel a struktúra követi a feladat logikai dekompozícióját Formális módszerek

Matematikai formalizmus Formális módszerek

Gráf - Topológia n  (P  T ) csomópont n ősei és n utódai: t  T ősei a bemeneti helyei: t = {p |(p,t )  E } t  T utódai a kimeneti helyei: t = {p |(t,p )  E } p  P ősei a bemeneti tranzíciói:  p = {t |(t,p )  E } p  P utódai a kimeneti tranzíciói:p = {t |(p,t )  E } Formális módszerek

Topológia Csomópontok P’  P ill. tranzíciók T’  T részhalmazára t  T forrás (nyelő) tranzíció: Bemenő (kimenő) hely nélküli (t =  illetve t  = ) Forrás tranzíció minden esetben tud tüzelni PN tiszta, ha nincsenek önhurkai, azaz t  T : t  t  =  Formális módszerek

Példa p1 p4 p2 p5 p3 p6 p1 =  p1 = {t1, t2} t1 = {p1} p2 =  t2 = {p1, p2, p3} Formális módszerek p3 = {t3} p3 = {t2} t3 = {p6} p4 = {t1, t2} p4 =  t1 = {p4} p5 = {t2} p5 =  t2 = {p4, p5, p6} p6 = {t2} p6 = {t3} t3 = {p3}

Dinamikus viselkedés matematikai modellje Egy lépés, állapotváltozás: a tranzíció „tüzelése” szavakkal: korábbi állapot: kezdeti token eloszlás vektor tüzelés végrehajtása engedélyezettség vizsgálata tokenek elvétele a bemeneti helyekről tokenek kirakása a kimeneti helyekre új állapot: megváltozott token eloszlás vektor A tranzíció tüzelési feltétele matematikai formalizmussal Ha egy t  T tranzíció minden bemeneti helyét legalább w-(p, t ) token jelöli (w-(p, t ) a p -ből t -be vezető e = (p, t ) él w*(e ) súlya)  a tranzíció tüzelése engedélyezett, ha Formális módszerek

Állapotátmenet és szomszédossági mátrix A tranzíció tüzelésekor a rendszer elvesz w-(p, t ) darab tokent a p  t bemeneti helyekről w-(p, t ) a p  t él súlya elhelyez w+(t, p ) darab tokent a p  t kimeneti helyekre w+(t, p ) a t  p él súlya A súlyozott szomszédossági mátrix: W = [w(t, p)] az élsúlyok szerinti tüzelési előfeltételeket modellezi Dimenziója: t  p = |T |  |P | A szomszédossági mátrix és az aktuális állapotmátrix alapján számíthatjuk az új állapotmátrixot Ha t tüzel, mennyit változik a p -beli tokenszám: Formális módszerek ha (t, p )  E és (p, t )  E w(t, p) = w+(t, p ) – w-(p, t ) ha (t, p )  E vagy (p, t )  E

Szomszédossági mátrix példa 2 p1 p4 t2 3 4 p2 p5 p3 p6 t3 w-(p, t ) a p  t él súlya w(t, p) = w+(t, p ) – w-(p, t ) Formális módszerek w+(t, p ) a t  p él súlya

Szimuláció Petri-hálókkal A Petri-háló tevékenységeit, akcióit olyan elemi (atomi) eseményekre bontjuk, amelyek tovább már nem oszthatóak. Esetünkben atomi eseménynek mondunk egy tranzíció tüzelését, így az összetett események a tüzelési szekvenciákat jelentik (az egymás után végrehajtható tüzelések sorozatát). Az eseményeket a rendszerben szereplő állapotváltozókkal szimuláljuk. Formális módszerek

Tüzelési szekvencia Állapotátmeneti trajektória Tüzelési szekvencia egymást követő tüzelések hatására felvett állapotok Tüzelési szekvencia  = Mi0 ti1 Mi1 … tin Min   ti1 … tin  Ha az összes tranzíció kielégíti a tüzelési szabályt: Min állapot Mi0-ból elérhető a  tüzelési szekvencia által: Mi0 [ > Min Formális módszerek

Formális módszerek III Kiterjesztett Petri struktúra

Nemdeterminisztikus működés Tüzelés végrehajtása: Engedélyezett tranzíció tetszése szerint tüzelhet vagy nem Konfliktus: több tranzíció engedélyezett: egy lépésben csak egy engedélyezett tranzíció tüzelhet konfliktusfeloldás véletlen választással Véletlenszerű tüzelés további következményei: implicit időfogalom, nincs időskála a tüzelés a [0, ) időintervallumban valahol megtörténhet Lehetséges megoldás: a tüzelésekhez tetszőleges konkrét időértéket rendelve az azonos struktúrájú és kezdőállapotú nem-determinisztikus időzítetlen Petri háló annak minden lehetséges tüzelési szekvenciáját lefedi. És a többi lehetőség a véletlenszerű viselkedési forma kiküszöbölésére? Formális módszerek

A kiterjesztés okai és lehetőségei PN = < P, T, E, W, M0, ….> Időkorlátok, Átláthatóság, Nem-determinisztikus működés Formális módszerek

I. Időzítés A rendszeren belüli működésnél megfigyelhető: Fizikai idő (óránkkal, a napszakok változásával stb. mérhetünk, tehát ami a rendszertől független), objektív időskálán szemléltethető (többnyire szabályosan periodikus). A logikai idő: a rendszer működésétől függ, viszonyítási pontjai a bekövetkezett események, Petri-hálók esetében a tüzelések. implicit időfogalmat kacsolunk rendszerünkhöz, amelyben egy engedélyezett tranzíció tüzelése a [0, ) intervallumban bárhol megtörténhet (fire-at-will). A [T1, T2, T1, T1] tüzelési szekvencia a fizikai és a logikai időben : Formális módszerek

Időzítés bevezetése Példa: nyolcas számláló egyetlen token kering a rendszerben, amelynek minden ugrása a számláló egy ugrását jelenti: kezdetben a token a P0 helyen van. A következő tüzeléskor átkerül az P1-es állapotba, majd a P2-be stb. A kör végén a P7-es helyrők ismét a P0-ba ugrunk, és kezdődik az egész számlálás elölről. DE: a tüzelésekhez kötött logikai idő semmit nem mond arról, hogy fizikailag mikor következik be a következő ugrás. Formális módszerek Forrás: Molnár Ágnes: Formális módszerek az informatikában (1) , NetAkadámia Tudástár

Vezessünk be órajelet! Első megközelítésben ez egyetlen forrás-tranzíciót jelent, amely tokeneket juttat a rendszerbe az alábbi módon: A CLK bizonyos időközönként tokent juttat a rendszerbe. Az újabb élek felvételével a tranzíciók már csak akkor tüzelhetnek, ha a középső állapotban van token, azaz „ütött az óra”. ha van is órajel-tokenünk, akkor sem garantált, hogy a soron következő tranzíció tüzel a következő óraütés előtt. Formális módszerek Sajnos a Petri-hálók sajátosságai miatt ezt nem tudjuk garantálni, de azt igen, hogy az óra ne üthessen addig, amíg az előző órajelre nem történt ugrás a számlálóban. Korlátozzuk tehát a középső állapot kapacitását egyetlen tokenre (ezt jelöli a beleírt 1-es). Ez azt jelenti, hogy azon a helyen maximum 1 token lehet egyszerre, tehát bemenő tranzíció nem tüzelhet, amíg a tüzelés túllépné a kapacitáskorlátot. Így ha esetünkben egyszer már ütött az óra, tehát van órajel-token a rendszerben, akkor mindaddig nem üthet újra az óra, amíg ez el nem tűnik, azaz amíg a számláló nem lép egyet. Így biztosíthatjuk azt, hogy minden órajelre egyet és pontosan egyet lépjen a számlálónk.

II. A kapacitáskorlát Példa: a kiindulási helyzetben egyetlen tokenünk van, a P1 helyen. A T1 tranzakció tüzelési feltétele, hogy P1-en legyen token, ezúttal ez teljesül. A T2 tranzakció jelenleg nem engedélyezett, hiszen P2-ben nincs token. T1 minden egyes tüzelése eggyel megnöveli a tokenek számát, vagyis nincs felső korlát arra, hogy a rendszerben mennyi token lesz, ha tetszőlegesen hosszú ideig magára hagyjuk futás közben. Ezáltal arra sem tudunk korlátot adni, hogy egy-egy állapotban hány tokenünk lesz. Ezt hivatott megoldani a kapacitáskorlát, p1 Formális módszerek Ha bevezetünk egy K(P2)=4 kapacitáskorlátot, az azt jelenti, hogy a P2 helyen maximum 4 token lehet egyszerre, s ez a T1 tranzíció tüzeléséhez is egy újabb, korlátozó feltételt jelent (ha P2-n már 4 token tartózkodik, akkor a T1 tüzelése nem engedélyezett, hiába van token P1-en).

p1 Ha azt akarjuk elérni, hogy a P2 (kelet) helyen maximum k=4 darab token legyen, be kell vezetnünk egy adminisztrációs helyet (P2’), ahol azt tartjuk számon, hogy a P2 helyre hány token fér még el. Így az adott helyen lévő tokenek számát m-mel jelölve mindig igaz lesz az alábbi összefüggés: m(P2’)+m(P2)=k. Hogyan felügyelhető, hogy ez minden esetben így legyen? Kezdetben a P2’ helyen legyen k darab token, P2-n pedig 0. A P2-vel szomszédos tranzakciókhoz vegyünk fel új éleket az alábbiaknak megfelelően: ha a tranzíció a darab tokent vesz el a P2 helyről, akkor az új élen adjon a darabot a P2’-höz. Ha pedig b tokent ad P2-höz, akkor ugyanennyit vegyen el P2’-ből. A módosított T1 tranzíció tehát nemcsak hozzáad P2-höz 2 db. tokent, hanem ugyanennyit el is vesz a P2’ adminisztrációs helyről. Hasonlóan T2 elvesz 1 tokent P2-ből, és hozzáad egyet P2’-höz. Formális módszerek

III. Tiltó él A kapacitáskorlát helyett tiltó éleket vehetünk fel A tiltó él azt jelöli, hogy a tranzíció ne tüzeljen, amíg az adott feltétel teljesül. (Az ábrán addig nem tüzel a tranzíció, amíg a P2 helyen van token) Ha a tiltó élhez egy k súlyt is rendelünk, az azt jelenti, hogy ha az él bemeneti helyén az adott k számú, vagy annál több token van, akkor a tranzíció tiltott, ha k-nál kevesebb token szerepel a helyen, akkor a tranzíció engedélyezett. Ezzel a módszerrel azt köthetjük tehát ki, hogy mindaddig nem jöhet óraütés, amíg van token a megfelelő helyen Formális módszerek k

IV. Prioritás SPN = (P, T, E, W, M0, ) A tranzíciókhoz rendelhető prioritás Az engedélyezett tranzíciók közül egy alacsonyabb prioritású mindaddig nem tüzelhet, amíg van engedélyezett ÉS magasabb prioritású tranzíció Prioritási szinten belül továbbra is nemdeterminisztikus választás prioritás Formális módszerek SPN = (P, T, E, W, M0, )

V. Sztochasztikus Petri hálók végrehajtási idő determinisztikus sztochasztikus Az engedélyezettséggel kapcsolatban felmerülő kérdések: Időzítetlen tranzíciók „prioritása” nagyobb: előbb tüzelnek Ha megszűnik az engedélyezettség mi lesz a gyújtási idővel? determinisztikus időzítésű tranzíció exponenciális időzítésű tranzíció Gyújtási időzítés Formális módszerek Abban az esetben, ha a Petri háló tranzícióihoz időzítést rendelünk, prioritási probléma lép fel. El kell dönteni ugyanis, hogy a tüzelésre engedélyezett tranzíciók közül az időzített, vagy a nem időzített tüzeljen először. (Szemantikailag ez annak a dilemmának felel meg, hogy a működés logikai engedélyezettsége vagy a teljesítményviszonyokat származtató időzítés az elsődleges fontosságú. Az időzített Petri hálók esetében a fenti dilemmát úgy oldják fel, hogy minden esetben a nem időzített tüzelést hajtják végre először, azaz az időzített tüzeléseknek kisebb a prioritása. Felvetődik az a kérdés, hogy mi történik akkor, ha egy megkezdett időzített tüzelés végrehajtási ideje alatt egy vele konfliktusban levő tüzelés miatt elmúlik a tüzelhetősége, azaz a bemenetén levő helyekről eltűnik az engedélyezéséhez szükséges tokenmennyiség. Az irodalom erre az esetre nem egységes. Az alternatív definíciók vagy az időzítés újraindulását, vagy a tüzelésből már letelt idő megőrzését (reward saving) írják elő. (A sztochasztikus Petri hálókban leggyakrabban használt exponenciális időzítésnél az örökifjú tulajdonság miatt a két definíció hatása a hálózatjellemzők várható értékeire azonosak.) SPN = (P, T, E, W, M0, )

Sztochasztikus Petri hálók SPN = (P, T, E, W, M0, ) tüzelési intenzitás  : T  R időzítés: t valószínűségi változó eloszlásfüggvény: sűrűségfüggvény: tüzelési szabály változik: intenzitás ~ prioritás két exponenciális eloszlás minimuma is az: l1 + l2 PN és SPN elérhetőségi gráfja azonos időzített elérhetőségi gráf: folytonos Markov lánc Formális módszerek 2017.04.04. 49

További lehetőség: színezett Petri háló (CPN –coloured PN) Színezetlen (P-T) Petri hálók • szinezetlen tokenek • tokenek halmaza • token manipulació • kezdeti jelöles • tiltó elek • élsúlyok • tranzició engedélyezese • konfliktus különböző engedélyezett tranziciók között • ~ assembly nyelv Színezett Petri hálók • színes tokenek • tokenek multihalmaza • adat manipulació • inicializaló kifejezések • őrfeltetelek • elkifejezések (változokkal) • lekötés engedélyezese • konfliktus ugyanazon tranzició engedélyezett lekötései között • ~ magas szintű programnyelv Formális módszerek Forrás: dr. Bartha Tamás: előadás diák

Petri hálós alkalmazások az operációs rendszereknél Formális módszerek Forrás: Pataricza András előadás diák

Okok Az informatikai rendszerek jól tagoltak rendszerépítés a komponensek integrációjával Az elemi komponensek kapcsolatában felismerhető a sorrendiség, ok-okozati függőség és az implicit függőség: pl. osztott erőforrás használata Célkitűzés: minőségi vagy/és mennyiségi analízis kvalitatív: logikai helyességbizonyítás kvantitatív: teljesítményelemzés, megbízhatóság és rendelkezésre állás, biztonságosság Formális módszerek

Tiltó él alkalmazására: kölcsönös kizárás kritikus szakasz t11 p11 t12 p12 t13 Formális módszerek t21 p21 t22 p22 t23 p3

Egyszerűbben: kritikus szakasz t11 p11 t12 p12 t13 t21 p21 t22 p22 t23 Formális módszerek t21 p21 t22 p22 t23 p3

Tipikus helyzetmodellek Fork-Join típusú párhuzamos végrehajtás Randevú típusú szinkronizálás Formális módszerek Szemafor típusú szinkronizálás

Tipikus modellkonstrukciók Kölcsönös kizárás megvalósítása Korlátos erőforrás kapacitás modellezése Állapotváltozó leolvasása Formális módszerek

Rendszermodellezés folyamata Formális módszerek

Különítsük el a fő modellelem-fajtákat (és utána ezt tegyük): folyamatok, illetve tevékenységek (az erőforrás használat, illetve üzenetváltás részletes feltüntetése nélkül) erőforrások a foglalt/szabad állapotot jellemző kétállapotú véges automata modellrészt a logikailag csatolt folyamatok közti esetleges üzenetek a folyamat és erőforrás (illetve az üzenetek pufferje) modelljében a megfelelő állapotátmenetek összevonása Építsünk Először nagy vonalakban, majd részletezzünk Moduláris elemeket, majd ezekből a integréljuk a modellt Formális módszerek A rendszermodellezés során a következő metodika használatát javasoljuk, amely a rendszerekben a három fő modellelem-fajtát (folyamatok, illetve tevékenységek, erőforrások, a logikailag csatolt folyamatok közötti esetleges üzenetek) először egyedileg építi fel, majd a modellt ezekből integrálja össze: 1. A folyamat modellje (egyelőre az erőforrás használat, illetve üzenetváltás részletes feltűntetése nélkül). Ebben a modellben az erőforrások foglalása, elengedése illetve az üzenetek küldése és fogadása csak mint egy-egy erőforrás illetve üzenet pufferhez nem kapcsolt állapotátmenet szerepel. 2. Minden egyes erőforráshoz fel kell építeni az ő foglalt/szabad állapotát jellemző kétállapotú véges automata modellrészletet, valamint az üzenetek pufferjének modelljét. Ezekben ugyancsak állapotátmenetek jelzik a szabaddá/foglalttá illetve üressé/telivé válást. 3. A folyamat és erőforrás (illetve az üzenetek pufferjének) modelljében a megfelelő állapotátmenetek fork-szerű összevonása. Például egy tevékenység egy általa használandó erőforrás blokkoló lefoglalása esetén akkor kezdődhet meg, ha az erőforrás egyidejűleg foglalt → szabad átmenetet hajt végre. Abban az esetben, ha egy erőforrást vagy üzenetpuffert több folyamat is használhat, természetesen mindegyikükhöz megfelelő szabaddá/foglalttá illetve üressé/telivé tevő állapotátmenet hozandó létre.

Halmazfinomítás B a a a B B Diszjunkt részhalmazok hozzárendelése elemekhez ai,  A, R(ai)  B úgy, hogy R(ai)  R(aj)=0 i, j B a 1 1 a a 2 B 3 B 2 Formális módszerek 3

A hierarchikus építkezés szabályai Egy tranzíciót helyettesíthetünk A behelyettesítendő gráf Tranzícióval kezdődjön és végződjön Az eredeti tranzíció be/kimenő élei ezekbe menjenek Komplexitás megnő A tranzíció részletezése Formális módszerek A helyes modellezésnél természetesen gondoskodni kell arról, hogy a durva modellbeli elemi tevékenység végrehajtási ideje megegyezzék a finomított modellbeli folyamatban szereplő tevékenységsorozat összesített végrehajtási idejével. Természetesen a két modell kapcsolata nem jelent feltétlen ekvivalenciát. A durvább, más szóval az absztrakt modell például az erőforrás-használatot csak az elemi tevékenység egészére tudja értelmezni, míg a finomabb, más szóval finomított modellben ezt bármelyik tevékenységhez hozzárendelhetjük. Abban az esetben, ha a fenti példánkra gondolunk, a kevergetésre használt kanál az absztrakt modellben a tevékenység teljes idejére foglalt, míg a finomabb modellben csak egy résztevékenységre.

Építsünk Petri hálót a PIPE2 nevű programmal! Gyakorlat Építsünk Petri hálót a PIPE2 nevű programmal! Formális módszerek

Példa: Petri háló az étteremben[1] A feladat Modellezzük egy étteremben zajló kiszolgálást Petri háló segítségével [2]. A modellben több vendég és pincér van. A pincér első lépésként felveszi a rendelést, ezt leadja a konyhán, majd újból várakozó állapotba kerül. Innen tud újabb rendelést felvenni, vagy az elkészült ételt felszolgálni. Készítsünk Petri hálót a PIPE2 nevű programmal: http://pipe2.sourceforge.net/ [1] Polai Zsolt: Petri háló az étteremben, beadandó az Formális módszerek az informatikában tárgyból az Óbudai Egyetem Neumann János Informatikai Karának Msc Képzésén belül [2] A feladat (Egy pincéres változatnak) ötlete a következő forrásból való: http://www.cise.ufl.edu/~fishwick/cap4800/pn1.ppt (10. dia) A több pincéres változat pedig saját továbbfejlesztése az eredeti ötletnek. Formális módszerek

A modellben a következő helyek vesznek részt: Várakozó pincér Vendég 1, 2, … Várakozás 1, 2, … Evés 1, 2, …, ahol a sorszámok az adott vendéget jelölik. Rendelés leadása a konyhán A fenti helyeket a következő tranzíciók kötik össze: Rendelés felvétele 1, 2, … Étel felszolgálása 1, 2, … Készítsük el az egy pincéres modellt, majd egy több pincéres változatot is. Formális módszerek

Egypincéres modell Formális módszerek

Egypincéres modell Az első változatban a következő sorrendben tüzelnek a tranzíciók: Rendelés felvétele (2) Rendelés leadása a konyhán Étel felszolgálása (2) Rendelés felvétele (1) Étel felszolgálása (1) Formális módszerek

Kezdeti állapot Formális módszerek

: Rendelés felvétele (2) tüzelt Formális módszerek

Rendelés leadása a konyhán tüzelt Formális módszerek

Étel felszolgálása (2) tüzelt Formális módszerek

Rendelés felvétele (1) tüzelt Formális módszerek

Rendelés leadása a konyhán tüzelt Formális módszerek

Étel felszolgálása (1) tüzelt Formális módszerek

Egypincéres – másik tüzelési szekvencia Második változat tüzelési sorrendje: Rendelés felvétele (2) Rendelés leadása a konyhán Rendelés felvétele (1) Étel felszolgálása (2) Étel felszolgálása (1) Ellenőrizzük! Formális módszerek

Több pincéres Petri hál Kezdeti változat Formális módszerek

Többpincéres modell Felmerülő problémák: A több pincéres modellben olyan probléma jelent meg, hogy az első pincér felveszi a rendelést, amit még nem ad le a konyhán, de a második pincér már fel is szolgálja a vendégnek a kért ételt. Erre a problémára a tiltó élet alkalmazhatunk Rendelés felvéve hely és az Étel felszolgálása tranzíciók közt. Formális módszerek

Többpincéres modell –második változat Tiltó él bevezetésén kívül a második változatban az Étel felszolgálása tranzíciók kaptak egy magasabb prioritást is, így – konyhán történt rendelés leadás után – a pincérek előbb fogják elvégezni a kész étel felszolgálását, mint a beérkező vendégek kiszolgálását. A több pincéres Petri háló egy lehetséges tüzelési sorrendje: Rendelés felvétele (1) Rendelés felvéve Étel felszolgálása (1) Rendelés felvétele (2) Rendelés felvétele (3) Rendelés leadása a konyhán Étel felszolgálása (2) Étel felszolgálása (3) Formális módszerek

Kétpincéres – kezdeti állapot Formális módszerek Majd ezután sorban: a következő diákon az egymást követő tüzelések

Formális módszerek

Formális módszerek

Formális módszerek

Formális módszerek

Formális módszerek

Formális módszerek

Formális módszerek

Formális módszerek

Formális módszerek