Upload
tea
View
30
Download
0
Embed Size (px)
DESCRIPTION
Form ális módszerek I. Alapfogalmak - rendszermodellek. 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. - PowerPoint PPT Presentation
Citation preview
For
mál
is m
ódsz
erek
Formális módszerek I
Alapfogalmak - rendszermodellek
Takács Márta Óbudai Egyetem, NIK, IMRI
For
mál
is m
ódsz
erek
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.
For
mál
is m
ódsz
erek
A rendszer modellje ezért foglalkozik:
• A szereplőkkel (ágensek)
• Kapcsolatrendszerükkel (statikus)
• Működésükkel (dinamizmus)
For
mál
is m
ódsz
erek
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ívfolyamat, több életciklus,fokozatos finomítás
For
mál
is m
ódsz
erek
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
For
mál
is m
ódsz
erek
Á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
For
mál
is m
ódsz
erek
IT rendszerfejlesztés ciklusai
Követelményanalízis Mi a megoldandó probléma?
KoncepciótervezésMilyen megoldási módszerek/eszközök léteznek?
Rendszertervezés Hogyan oldható meg afeladat?
ImplementációHogyan valósítható mega feladat megoldása?
Tesztelés Megoldottuk a problémát?
ÜzembehelyezésA megrendelő megfelelőnek tartjaa kész rendszert?
Üzemeltetés, karbantartás Továbbfejlesztés szükséges?
ProblémaProbléma
ImplementációImplementáció
FenntarthatóságFenntarthatóság
For
mál
is m
ódsz
erek
Vízesés modell
Követelménytervezés
Rendszerallokáció
Koncepciótervezés
Implementáció
Telepítés
Üzemeltetés &Karbantartás
Verifikáció& Validáció
tervezésRendszer
For
mál
is m
ódsz
erek
V modell
dekompozíció
kom
pozí
ció
verifikáció
verifikáció
For
mál
is m
ódsz
erek
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ó
Rendszern
Rendszer2
transzformáció, finomítást1
verifikáció
For
mál
is m
ódsz
erek
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
For
mál
is m
ódsz
erek
Boehm-féle spirál modell
CÉLOK, ALTERNATÍVÁK, KORLÁTOZÁSOKMEGHATÁROZÁSA
Kockázati tényezők felmérése ls kezelése
FEJLESZTÉSÉS TESZTELÉS
Tervezés, itteráció
For
mál
is m
ódsz
erek
Hogyan modellezzünk, milyen eszközökkel?Legyen formalizálható szintaktikailag és interpretációja ellenőrizhető
szemantikailagLegyen matematikai eszközrendszereLegyen szoftvermegvalósításaTová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
For
mál
is m
ódsz
erek
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)
For
mál
is m
ódsz
erek
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.
For
mál
is m
ódsz
erek
Formális módszerek II
Peri hálók
Takács Márta Óbudai Egyetem, NIK, IMRI
For
mál
is m
ódsz
erek
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.
For
mál
is m
ódsz
erek
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.
For
mál
is m
ódsz
erek
Petri hálók struktúrájaStrukturá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
For
mál
is m
ódsz
erek
Petri STRUKTÚRA
PN = < P, T, E, W, M0>
= 3
Dinamikus működés, tokenekkel
For
mál
is m
ódsz
erek
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 mi komponense a pi helyen található tokenek száma
m
m
M 1
2
3
•Kezdőállapot: M0 kezdő token elosztás
3
0
1
M
For
mál
is m
ódsz
erek
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”.
For
mál
is m
ódsz
erek
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 A következő tüzelő tranzíció a T1 leszlesz
P1
P2
P3
T2
T1
2
3
For
mál
is m
ódsz
erek
Hogyan néz ki a fenti háló a T1 tranzíció tüzelése után?
P1
P2
P3
T2
T1
2
3
P1
P2
P3
T2
T1
2
3
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 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 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).teljesen kiszámíthatatlan (a Petri-háló nemdeterminisztikus működése).
For
mál
is m
ódsz
erek
P1
P2
P3
T2
T1
2
3
P1
P2
P3
T2
T1
2
3
P1
P2
P3
T2
T1
2
3
A T1 tüzelése után
T2 tüzelése után
For
mál
is m
ódsz
erek
P1
P2
P3
T2
T1
2
3
P1
P2
P3
T2
T1
2
3
P1
P2
P3
T2
T1
2
3
-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
For
mál
is m
ódsz
erek
Matematikai formalizmus• Egy adott token-eloszlást az az M
vektor jelöl egy adott állapotban • M0 a kezdeti állapotot jelöli
P1
P2
P3
T2
T1
2
3
0
1
3
0M
P1
P2
P3
T2
T1
2
3
T1 tüzelése után
1
1
2
M 1T
For
mál
is m
ódsz
erek
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ókFelépítése:• egy-egy hely egy-egy logikai feltétel• a struktúra követi a feladat logikai dekompozícióját
For
mál
is m
ódsz
erek
Matematikai formalizmus
For
mál
is m
ódsz
erek
Gráf - Topológian (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 }
For
mál
is m
ódsz
erek
Topológia
Csomópontok P’ P ill. tranzíciók T’ T részhalmazára
'
'
'
'
'
'
'
'
Tt
Tt
Pp
Pp
tT
tT
pP
pP
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, azazt T : t t =
For
mál
is m
ódsz
erek
Példa2
3 4
p1
p2
p3
p4
p5
p6
t1
t2
t3
p2 = p2 = {t2}p3 = {t3} p3 = {t2}p4 = {t1, t2} p4 = p5 = {t2} p5 = p6 = {t2} p6 = {t3}
p1 = p1 = {t1, t2}t2 = {p1, p2, p3}
t2 = {p4, p5, p6}
t3 = {p6}
t3 = {p3}
t1 = {p1}
t1 = {p4}
For
mál
is m
ódsz
erek
Dinamikus viselkedés matematikai modelljeEgy 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álata2. tokenek elvétele a bemeneti helyekről3. 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
),(: tpwmtp p
For
mál
is m
ódsz
erek
Á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
For
mál
is m
ódsz
erek
Szomszédossági mátrix példa2
3 4
p1
p2
p3
p4
p5
p6
t1
t2
t3
100000
000131
000002
W
000100
141000
001000
W
100100
141131
001002
W
–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) =
For
mál
is m
ódsz
erek
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.
For
mál
is m
ódsz
erek
Tüzelési szekvencia• Állapotátmeneti trajektória
• 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
For
mál
is m
ódsz
erek
Formális módszerek IIIKiterjesztett Petri struktúra
For
mál
is m
ódsz
erek
Nemdeterminisztikus működésTü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énhetLehetsé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?
For
mál
is m
ódsz
erek
A kiterjesztés okai és lehetőségeiPN = < P, T, E, W, M0, ….>
• Időkorlátok,• Átláthatóság,• Nem-determinisztikus működés
For
mál
is m
ódsz
erek
I. IdőzítésA 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 :
T1 T2 T1 T1
Fizikai idő
Logikai idő
Tüzelés:
0 1 2 3 4 5 6
0 1 2 3
7
For
mál
is m
ódsz
erek
Időzítés bevezetésePélda: nyolcas számláló
0
1
2
3
4
5
6
7
• 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
For
mál
is m
ódsz
erek
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.
P0
P1
P2
P3
P4
P5
P6
P7
CLK
1
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.
For
mál
is m
ódsz
erek
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).
For
mál
is m
ódsz
erek
• 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
For
mál
is m
ódsz
erek
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
P1
P2
P3T
k
For
mál
is m
ódsz
erek
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
For
mál
is m
ódsz
erek
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
For
mál
is m
ódsz
erek
23.04.21. 49
SPN = (P, T, E, W, M0, )
• 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: 1 + 2
• 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
tetFtP 1)(}{tetf )(
For
mál
is m
ódsz
erek
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
For
mál
is m
ódsz
erek
Petri hálós alkalmazások az operációs rendszereknél
Forrás: Pataricza András előadás diák
For
mál
is m
ódsz
erek
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
For
mál
is m
ódsz
erek
kritikus szakasz
Tiltó él alkalmazására: kölcsönös kizárás
t11 t12 t13p11 p12
p3
t21 t22 t23p21 p22
For
mál
is m
ódsz
erek
Egyszerűbben:
kritikus szakasz
t11 t12 t13p11 p12
p3
t21 t22 t23p21 p22
For
mál
is m
ódsz
erek
Tipikus helyzetmodellek
Fork-Join típusú
párhuzamos végrehajtás
Randevú típusú
szinkronizálásSzemafor
típusú szinkronizálás
For
mál
is m
ódsz
erek
Tipikus modellkonstrukciók
Kölcsönös kizárás
megvalósítása
Korlátos erőforrás kapacitás
modellezéseÁllapotválto
zó leolvasása
For
mál
is m
ódsz
erek
Rendszermodellezés folyamata
For
mál
is m
ódsz
erek
• 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ásoka 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
For
mál
is m
ódsz
erek
Diszjunkt részhalmazok hozzárendelése elemekhez
ai, A, R(ai) B úgy, hogy R(ai) R(aj)=0 i, j
Halmazfinomítás
B1
B3
B2
a1 a2a3
For
mál
is m
ódsz
erek
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ő
P1
P2
P3T
A tranzíció részletezése
For
mál
is m
ódsz
erek
Gyakorlat
Építsünk Petri hálót a PIPE2 nevű programmal!
For
mál
is m
ódsz
erek
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.
For
mál
is m
ódsz
erek
• 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.
For
mál
is m
ódsz
erek
Egypincéres modell
For
mál
is m
ódsz
erek
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)
For
mál
is m
ódsz
erek
Kezdeti állapot
For
mál
is m
ódsz
erek
: Rendelés felvétele (2) tüzelt
For
mál
is m
ódsz
erek
Rendelés leadása a konyhán tüzelt
For
mál
is m
ódsz
erek
Étel felszolgálása (2) tüzelt
For
mál
is m
ódsz
erek
Rendelés felvétele (1) tüzelt
For
mál
is m
ódsz
erek
Rendelés leadása a konyhán tüzelt
For
mál
is m
ódsz
erek
Étel felszolgálása (1) tüzelt
For
mál
is m
ódsz
erek
Egypincéres – másik tüzelési szekvenciaMá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!
For
mál
is m
ódsz
erek
Több pincéres Petri hál• Kezdeti változat
For
mál
is m
ódsz
erek
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.
For
mál
is m
ódsz
erek
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ánRendelés leadása a konyhán
Étel felszolgálása (2)Étel felszolgálása (3)
For
mál
is m
ódsz
erek
Kétpincéres – kezdeti állapot
Majd ezután sorban: a következő diákon az egymást követő tüzelések
For
mál
is m
ódsz
erek
For
mál
is m
ódsz
erek
For
mál
is m
ódsz
erek
For
mál
is m
ódsz
erek
For
mál
is m
ódsz
erek
For
mál
is m
ódsz
erek
For
mál
is m
ódsz
erek
For
mál
is m
ódsz
erek
For
mál
is m
ódsz
erek