Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Formális módszerek Formális módszerek I Alapfogalmak - rendszermodellek Takács Márta Óbudai Egyetem, NIK, IMRI."— Előadás másolata:

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

2 Formális módszerek 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.

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

4 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

5 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

6 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

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

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

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

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

11 Formális módszerek 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

12 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 FEJLESZTÉS ÉS TESZTELÉS Tervezés, itteráció

13 Formális módszerek 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

14 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)

15 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.

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

17 Formális módszerek 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.

18 Formális módszerek Carl Adam Petri ( ) 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.

19 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 ) 2

20 Formális módszerek Petri STRUKTÚRA PN = = 3 Dinamikus működés, tokenekkel

21 Formális módszerek 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 | (pozicíók halmazának számossága) komponensű M token eloszlás vektor Az m i komponense a p i helyen található tokenek száma 2 3 Kezdőállapot: M0 kezdő token elosztás

22 Formális módszerek 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 2 3 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”.

23 Formális módszerek 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 A következő tüzelő tranzíció a T1 lesz

24 Formális módszerek Hogyan néz ki a fenti háló a T1 tranzíció tüzelése után? T1 és T2 állapot tüzelhető. ??? 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). 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).

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

26 Formális módszerek -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 megegyezik a kiinduló tokeneloszlással

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

28 Formális módszerek 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

29 Formális módszerek Matematikai formalizmus

30 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 }

31 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 = 

32 Formális módszerek Példa 2 34 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 t1t1 t2t2 t3t3 p 2 =  p 2 = {t 2 } p 3 = {t 3 } p 3 = {t 2 } p 4 = {t 1, t 2 } p 4 =  p 5 = {t 2 } p 5 =  p 6 = {t 2 } p 6 = {t 3 } p 1 =  p 1 = {t 1, t 2 } t 2 = {p 1, p 2, p 3 } t 2 = {p 4, p 5, p 6 } t 3 = {p 6 } t 3 = {p 3 } t 1 = {p 1 } t 1 = {p 4 }

33 Formális módszerek 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.engedélyezettség vizsgálata 2.tokenek elvétele a bemeneti helyekről 3.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

34 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 | 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: w(t, p) = ha (t, p )  E és (p, t )  E 0 w + (t, p ) – w - (p, t ) ha (t, p )  E vagy (p, t )  E

35 Formális módszerek Szomszédossági mátrix példa 2 34 p1p1 p2p2 p3p3 p4p4 p5p5 p6p6 t1t1 t2t2 t3t3 –w-(p, t ) a p  t él súlya –w+(t, p ) a t  p él súlya w + (t, p ) – w - (p, t ) w(t, p) =

36 Formális módszerek 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.

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

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

39 Formális módszerek 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?

40 Formális módszerek A kiterjesztés okai és lehetőségei PN = Időkorlátok, Átláthatóság, Nem-determinisztikus működés

41 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 :

42 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. Forrás: Molnár Ágnes: Formális módszerek az informatikában (1), NetAkadámia Tudástár

43 Formális módszerek 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. 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.

44 Formális módszerek 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 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).

45 Formális módszerek 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. p1

46 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 k

47 Formális módszerek IV. Prioritás 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 SPN = (P, T, E, W, M0,  ) prioritás

48 Formális módszerek 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ó SPN = (P, T, E, W, M0, ) Gyújtási időzítés

49 Formális módszerek SPN = (P, T, E, W, M 0, ) tüzelési intenzitás : T  R időzítés:  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: PN és SPN elérhetőségi gráfja azonos időzített elérhetőségi gráf: folytonos Markov lánc Sztochasztikus Petri hálók

50 Formális módszerek 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 Forrás: dr. Bartha Tamás: előadás diák

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

52 Formális módszerek 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

53 Formális módszerek kritikus szakasz Tiltó él alkalmazására: kölcsönös kizárás t 11 t 12 t 13 p 11 p 12 p3p3 t 21 t 22 t 23 p 21 p 22

54 Formális módszerek Egyszerűbben: kritikus szakasz t 11 t 12 t 13 p 11 p 12 p3p3 t 21 t 22 t 23 p 21 p 22

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

56 Formális módszerek 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

57 Formális módszerek Rendszermodellezés folyamata

58 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

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

60 Formális módszerek 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

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

62 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: [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ó: (10. dia)http://www.cise.ufl.edu/~fishwick/cap4800/pn1.ppt A több pincéres változat pedig saját továbbfejlesztése az eredeti ötletnek.

63 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, … 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.

64 Formális módszerek Egypincéres modell

65 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)

66 Formális módszerek Kezdeti állapot

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

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

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

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

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

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

73 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) Rendelés leadása a konyhán Étel felszolgálása (2) Étel felszolgálása (1) Ellenőrizzük!

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

75 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.

76 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)

77 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

78 Formális módszerek

79

80

81

82

83

84

85

86


Letölteni ppt "Formális módszerek Formális módszerek I Alapfogalmak - rendszermodellek Takács Márta Óbudai Egyetem, NIK, IMRI."

Hasonló előadás


Google Hirdetések