Alapfogalmak rendszermodellek Takcs Mrta budai Egyetem NIK IMRI
Alapfogalmak - rendszermodellek Takács Márta Óbudai Egyetem, NIK, IMRI Formális módszerek I
• 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 fogalma
A rendszer modellje ezért foglalkozik: • A szereplőkkel (ágensek) • Működésükkel (dinamizmus) Formális módszerek • Kapcsolatrendszerükkel (statikus)
A rendszer életciklusai • 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ó iteratív folyamat, több életciklus, fokozatos finomítás • 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 Formális módszerek • Tervezés (specifikáció):
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 • 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 • csak termékminőség • reprodukálás konstrukció helyett
Általános lépések Többféle modell születik ezen elvek alapján Ábrák forrása: Dr. Pataricza András Formális módszerek • 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
IT rendszerfejlesztés ciklusai Koncepciótervezés Rendszertervezés Implementáció Tesztelés Üzembehelyezés Üzemeltetés, karbantartás Mi a megoldandó probléma? Milyen megoldási módszerek/ eszközök léteznek? Hogyan oldható meg a feladat? Hogyan valósítható meg a feladat megoldása? Probléma Implementáció Megoldottuk a problémát? A megrendelő megfelelőnek tartja a kész rendszert? Továbbfejlesztés szükséges? Fenntarthatóság Formális módszerek Követelményanalízis
Vízesés modell Koncepció tervezés Rendszer allokáció Formális módszerek Követelmény tervezés Rendszer tervezés Implementáció Verifikáció & Validáció Telepítés Üzemeltetés & Karbantartás
Formális módszerek zíc ió po m ió ác ik rif ve ió zíc po m ko de ko V modell verifikáció
Verifikáció és validáció szerepe • Verifikáció: • jól építjük-e a rendszert? • Validáció: Formális módszerek • jó rendszert építünk-e? Specifikáció 1 transzformáció, finomítás Specifikáció 2 Rendszer 2 Specifikáción verifikáció Rendszern Implementáció
• Az eddigi modellek „egyverzió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 Verifikáció és validáció, prototípusok, tesztelés
Boehm-féle spirál modell Kockázati tényezők felmérése ls kezelése Formális módszerek CÉLOK, ALTERNATÍVÁK, KORLÁTOZÁSOK MEGHATÁROZÁSA Tervezés, itteráció FEJLESZTÉS ÉS TESZTELÉS
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 Hogyan modellezzünk, milyen eszközökkel?
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) • 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 • környezetmodellezés (modellbázisú / nem modell bázisú)
Források Pataricza, A. , Formális módszerek az informatikában. Typotex, 2004. Formális módszerek 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)
Peri hálók Takács Márta Óbudai Egyetem, NIK, IMRI Formális módszerek II
• 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 A Petri-hálók egyidejűleg nyújtanak grafikus és matematikai reprezentációt
Carl Adam Petri (1926 -2010) • 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 a 60 -as évek elején publikálta a róla elnevezett módszert.
Petri hálók struktúrája Formális módszerek 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 ) 2
Petri STRUKTÚRA Formális módszerek Dinamikus működés, tokenekkel PN = < P, T, E, W, M 0> = 3
Dinamikus működés állapotváltozókkal Formális módszerek • Á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 | (pozicíók halmazának számossága) komponensű M token eloszlás vektor • Az mi komponense a pi helyen 2 található tokenek száma 3 • Kezdőállapot: M 0 kezdő token elosztás
Rendszer állapotváltozásainak modellezése • Állapot megváltozása: tranzíciók „tüzelése” • tokenek elvétele a bemeneti helyekről • tokenek kirakása a kimeneti helyekre • megváltozott token eloszlás vektor új állapotot eredményez 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”. 2 3 Formális módszerek • engedélyezettség vizsgálata • tüzelés végrehajtása
• • A P 1 állapotban 3, a P 2 -ben 1, P 3 -ban 0 token van. A T 1 tranzíciónak két bemenő (P 1 ből és P 2 -ből), és két kimenő (P 2 be és P 3 -ba) éle van. Két élnek van 1 -től különböző súlya: a P 1 T 2 él 2, a T 2 P 1 é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 T 1 lesz Formális módszerek Példa
Formális módszerek Hogyan néz ki a fenti háló a T 1 tranzíció tüzelése után? T 1 és T 2 á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).
Formális módszerek A T 1 tüzelése után T 2 tüzelése után
-T 2 tranzíció ismét nem képes tüzelésre Formális módszerek -ha a T 1 tranzíció még egy alkalommal tüzel, akkor a P 1 helyen nem marad több token, a háló holtpontba (deadlock) kerül megegyezik a kiinduló tokeneloszlással
• Egy adott token-eloszlást az az M vektor jelöl egy adott állapotban • M 0 a kezdeti állapotot jelöli T 1 tüzelése után Formális módszerek Matematikai formalizmus
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 Mit látunk a működés alapján?
Formális módszerek Matematikai formalizmus
Gráf - Topológia n (P T ) csomópont n ősei és n utódai: • 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 • t T ősei a bemeneti helyei: t = {p |(p, t ) E }
Topológia 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 Csomópontok P’ P ill. tranzíciók T’ T részhalmazára
p 1 p 2 t 1 2 t 2 3 p 1 p 2 p 3 p 4 p 5 p 6 = = = {t 3} {t 1, t 2} {t 2} t 3 p 1 p 2 p 3 p 4 p 5 p 6 = = = {t 1, t 2} {t 3} p 4 4 p 5 p 6 t 1 = {p 1} t 2 = {p 1, p 2, p 3} t 3 = {p 6} t 1 = {p 4} t 2 = {p 4, p 5, p 6} t 3 = {p 3} Formális módszerek Példa
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 1. 2. 3. • 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 • 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 = |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: 0 w(t, p) = ha (t, p ) E és (p, t ) E w+(t, p ) – w-(p, t ) ha (t, p ) E vagy (p, t ) E Formális módszerek • w+(t, p ) a t p él súlya
Szomszédossági mátrix példa p 1 p 2 3 p 3 w(t, p) = w+(t, p ) – w-(p, t ) t 1 t 2 t 3 p 4 4 p 5 p 6 –w-(p, t ) a p t él súlya –w+(t, p ) a t p él súlya Formális módszerek 2
• 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 Szimuláció Petri-hálókkal
Tüzelési szekvencia • Állapotátmeneti trajektória • Tüzelési szekvencia • = Mi 0 ti 1 Mi 1 … tin Min ti 1 … tin • Ha az összes tranzíció kielégíti a tüzelési szabályt: • Min állapot Mi 0 -ból elérhető a tüzelési szekvencia által: • Mi 0 [ > Min Formális módszerek • egymást követő tüzelések hatására felvett állapotok
Kiterjesztett Petri struktúra Formális módszerek III
Nemdeterminisztikus működés • 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 Tüzelés végrehajtása: • Engedélyezett tranzíció tetszése szerint tüzelhet vagy nem • Konfliktus: több tranzíció engedélyezett:
A kiterjesztés okai és lehetőségei • Időkorlátok, • Átláthatóság, • Nem-determinisztikus működés Formális módszerek PN = < P, T, E, W, M 0, …. >
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 [T 1, T 2, T 1] tüzelési szekvencia a fizikai és a logikai időben : Formális módszerek I. Időzítés
• egyetlen token kering a rendszerben, amelynek minden ugrása a számláló egy ugrását jelenti: kezdetben a token a P 0 helyen van. • A következő tüzeléskor átkerül az P 1 es állapotba, majd a P 2 -be stb. A kör végén a P 7 -es helyrők ismét a P 0 -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. Forrás: Molnár Ágnes: Formális módszerek az informatikában (1) , Net. Akadámia Tudástár Formális módszerek Időzítés bevezetése Példa: nyolcas számláló
• Első megközelítésben ez egyetlen forrástranzí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. 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. Formális módszerek Vezessünk be órajelet!
p 1 Példa: a kiindulási helyzetben egyetlen tokenünk van, a P 1 helyen. A T 1 tranzakció tüzelési feltétele, hogy P 1 -en legyen token, ezúttal ez teljesül. A T 2 tranzakció jelenleg nem engedélyezett, hiszen P 2 -ben nincs token. T 1 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 egyegy állapotban hány tokenünk lesz. Ezt hivatott megoldani a kapacitáskorlát, Ha bevezetünk egy K(P 2)=4 kapacitáskorlátot, az azt jelenti, hogy a P 2 helyen maximum 4 token lehet egyszerre, s ez a T 1 tranzíció tüzeléséhez is egy újabb, korlátozó feltételt jelent (ha P 2 -n már 4 token tartózkodik, akkor a T 1 tüzelése nem engedélyezett, hiába van token P 1 -en). Formális módszerek II. A kapacitáskorlát
• Ha azt akarjuk elérni, hogy a P 2 (kelet) helyen maximum k=4 darab token legyen, be kell vezetnünk egy adminisztrációs helyet (P 2’), ahol azt tartjuk számon, hogy a P 2 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(P 2’)+m(P 2)=k. • Hogyan felügyelhető, hogy ez minden esetben így legyen? • Kezdetben a P 2’ helyen legyen k darab token, P 2 -n pedig 0. A P 2 -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 P 2 helyről, akkor az új élen adjon a darabot a P 2’-höz. Ha pedig b tokent ad P 2 -höz, akkor ugyanennyit vegyen el P 2’-ből. • A módosított T 1 tranzíció tehát nemcsak hozzáad P 2 -höz 2 db. tokent, hanem ugyanennyit el is vesz a P 2’ adminisztrációs helyről. Hasonlóan T 2 elvesz 1 tokent P 2 -ből, és hozzáad egyet P 2’-höz. Formális módszerek p 1
k • 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 P 2 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 III. Tiltó él
IV. Prioritás • A tranzíciókhoz rendelhető prioritás • Az engedélyezett tranzíciók közül egy alacsonyabb prioritású • engedélyezett ÉS • magasabb prioritású tranzíció prioritás • Prioritási szinten belül továbbra is nemdeterminisztikus választás SPN = (P, T, E, W, M 0, ) Formális módszerek mindaddig nem tüzelhet, amíg van
V. Sztochasztikus Petri hálók • determinisztikus • sztochasztikus determinisztikus időzítésű tranzíció exponenciális időzítésű tranzíció Az engedélyezettséggel kapcsolatban felmerülő kérdések: • Időzítetlen tranzíciók. Gyújtási „prioritása” nagyobb: előbb tüzelnek időzítés • Ha megszűnik az engedélyezettség mi lesz a gyújtási idővel? SPN = (P, T, E, W, M 0, ) Formális módszerek • végrehajtási idő
Sztochasztikus Petri hálók SPN = (P, T, E, W, M 0, ) • tüzelési intenzitás : T R • időzítés: t valószínűségi változó • 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: 1 + 2 Formális módszerek • eloszlásfüggvény: • PN és SPN elérhetőségi gráfja azonos • időzített elérhetőségi gráf: folytonos Markov lánc 2021. 06. 16. 49
• 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 Forrás: dr. Bartha Tamás: előadás diák • 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 További lehetőség: színezett Petri háló (CPN –coloured PN)
Forrás: Pataricza András előadás diák Formális módszerek Petri hálós alkalmazások az operációs rendszereknél
Okok • Az informatikai rendszerek jól tagoltak • 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 • rendszerépítés a komponensek integrációjával
Tiltó él alkalmazására: kölcsönös kizárás p 11 t 12 p 12 t 13 t 21 p 21 t 22 p 22 t 23 Formális módszerek t 11 kritikus szakasz p 3
Egyszerűbben: p 11 t 12 p 12 t 13 t 21 p 21 t 22 p 22 t 23 Formális módszerek t 11 kritikus szakasz p 3
Fork-Join típusú párhuzamos végrehajtás Randevú típusú szinkronizálás Szemafor típusú szinkronizálás Formális módszerek Tipikus helyzetmodellek
Tipikus modellkonstrukciók Korlátos erőforrás kapacitás modellezése Állapotváltozó leolvasása Formális módszerek Kölcsönös kizárás megvalósítása
Formális módszerek Rendszermodellezés folyamata
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 •
Halmazfinomítás a 1 a 3 a 2 B 1 B 3 ai, A, R(ai) B úgy, hogy R(ai) R(aj)=0 i, j B 2 Formális módszerek Diszjunkt részhalmazok hozzárendelése elemekhez
• 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 hierarchikus építkezés szabályai
Építsünk Petri hálót a PIPE 2 nevű programmal! Formális módszerek Gyakorlat
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 PIPE 2 nevű programmal: http: //pipe 2. sourceforge. net/ 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/cap 4800/pn 1. ppt (10. dia) A több pincéres változat pedig saját továbbfejlesztése az eredeti ötletnek. [1] Formális módszerek Példa: Petri háló az étteremben[1]
• • • 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, … • Rendelés leadása a konyhán • Készítsük el az egy pincéres modellt, majd egy több pincéres változatot is. Formális módszerek • A modellben a következő helyek vesznek részt:
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) • Rendelés leadása a konyhán • Étel felszolgálása (1) Formális módszerek Egypincéres modell
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
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) • Rendelés leadása a konyhán • Étel felszolgálása (2) • Étel felszolgálása (1) • Ellenőrizzük! Formális módszerek Egypincéres – másik tüzelési szekvencia
Több pincéres Petri hál Formális módszerek • Kezdeti változat
• 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
• 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 Többpincéres modell –második változat
Formális módszerek Kétpincéres – kezdeti állapot 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
- Slides: 86