Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Alapfogalmak - rendszermodellek
Formális módszerek I Alapfogalmak - rendszermodellek Formális módszerek Takács Márta Óbudai Egyetem, NIK, IMRI
2
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
3
A rendszer modellje ezért foglalkozik:
A szereplőkkel (ágensek) Kapcsolatrendszerükkel (statikus) Működésükkel (dinamizmus) Formális módszerek
4
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
5
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
6
Á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
7
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
8
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
9
V modell kompozíció dekompozíció verifikáció verifikáció
Formális módszerek dekompozíció
10
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ó
11
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
12
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
13
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
14
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
15
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
16
Ó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
17
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
18
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. Formális módszerek
19
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
20
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
21
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
22
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
23
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 P1T2 él 2, a T2P1 é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
24
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).
25
A T1 tüzelése után Formális módszerek T2 tüzelése után
26
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
27
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
28
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
29
Matematikai formalizmus
Formális módszerek
30
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
31
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
32
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}
33
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
34
Á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
35
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
36
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
37
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
38
Formális módszerek III Kiterjesztett Petri struktúra
39
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
40
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
41
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
42
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
43
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.
44
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).
45
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
46
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
47
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, )
48
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, )
49
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 49
50
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
51
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
52
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
53
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
54
Egyszerűbben: kritikus szakasz t11 p11 t12 p12 t13 t21 p21 t22 p22 t23
Formális módszerek t21 p21 t22 p22 t23 p3
55
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
56
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
57
Rendszermodellezés folyamata
Formális módszerek
58
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.
59
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
60
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.
61
É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
62
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) A több pincéres változat pedig saját továbbfejlesztése az eredeti ötletnek. Formális módszerek
63
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
64
Egypincéres modell Formális módszerek
65
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
66
Kezdeti állapot Formális módszerek
67
: Rendelés felvétele (2) tüzelt
Formális módszerek
68
Rendelés leadása a konyhán tüzelt
Formális módszerek
69
Étel felszolgálása (2) tüzelt
Formális módszerek
70
Rendelés felvétele (1) tüzelt
Formális módszerek
71
Rendelés leadása a konyhán tüzelt
Formális módszerek
72
Étel felszolgálása (1) tüzelt
Formális módszerek
73
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
74
Több pincéres Petri hál
Kezdeti változat Formális módszerek
75
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
76
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
77
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
78
Formális módszerek
79
Formális módszerek
80
Formális módszerek
81
Formális módszerek
82
Formális módszerek
83
Formális módszerek
84
Formális módszerek
85
Formális módszerek
86
Formális módszerek
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.