S04-1 Párhuzamos folyamatok modellezése Petri hálók segítségével

  1. Petri hálók definíciója és működési szabálya
  2. Párhuzamos folyamatok legfontosabb viselkedési tulajdonságai (elevenség, biztonságosság, korlátosság) és azok vizsgálatára szolgáló eszközök (elérési, fedési fa).
  3. Petri doboz alkalmazása párhuzamos folyamatok modelljének felépítésében.
  4. Párhuzamos és elosztott rendszerek szemantikai leírása lehetséges formáinak (műveleti, leíró, axiomatikus) bemutatása egy konkrét példán keresztül.

Petri hálók definíciója és működési szabálya

Páros gráf: olyan gráf, amelyben a csúcsok két diszjunkt halmazba sorolhatóak oly módon, hogy az azonos halmazba tartozó csúcsok között nem vezet él.

Petri háló: (N, \(M_0\)) rendezett pár, ahol:

Normális háló: minden él súlya 1.

Kapacitás korlát:

A háló egyes helyeinek súlya nem haladhat meg egy előre megadott értéket: \(k: P \rightarrow \mathbb{N}_0\)

Jelölések:

Működési szabály:

  1. t átmenet aktivizálható, ha \(\forall\)p \(\in\) \(\bullet\)t: M(p) \(\ge\) v(p, t),
    vagyis minden őt megelőző hely súlya legalább akkora, mint az őket összekötő él súlya
  2. t átmenet után az új M' súlyozás: \(\forall\)p \(\in\) P: M'(p) = M(p) + v(t,p) - v(p,t),
    vagyis az átmenetbe vezető élek súlyával csökken a kiinduló helyek súlya, és az átmenetből vezető élek súlyával nő a cél helyek súlya (ha egy hely nem kapcsolódik az adott átmenethez, akkor a súlya a régi marad)

Viselkedési tulajdonságok

Jelölések:

K – korlátosság (k \(\in \mathbb{N}\)):

Az (N, \(M_0\)) Petri háló k - korlátos, ha \(\forall\)M \(\in\) R(N,\(M_0\)) : \(\forall\)p \(\in\) P : M(p) \(\leq\) k

Biztonságos:

Egy Petri háló biztonságos, ha 1 - korlátos

Elevenség:

Legyen t \(\in\) T. \(M_0\) kezdősúlyozástól függően az N Petri hálóban a t átmenet eleven

Szigorúan \(L_k\) eleven: \(L_k\) eleven, de nem \(L_{k+1}\)

Petri háló \(L_k\) eleven: (N, \(M_0\)) \(\forall\)t \(\in\) T : t \(L_k\) eleven

Lefedhetőség:

(N, \(M_0\)) Petri háló esetén az M súlyozás lefedhető, ha \(\exists\)M' \(\in\) R(\(M_0\)) : \(\forall\)p \(\in\) P : M'(p) \(\geq\) M(p)

Petri hálók vizsgálata

Elérhetőségi fa:

(N, \(M_0\)) Petri háló elérhetőségi (végtelen esetben fedési) fája, olyan gráf, amelyben a csúcsok súlyozásokkal vannak címkézve, az élek pedig átmenetekkel.

Konstrukció:

  1. új := {\(M_0\)}
  2. ciklus, amíg új \(\not=\) \(\oslash\)
    1. M :\(\in\) új, új := új \(\setminus\) {M}
    2. ha M-ig a gyökértől létezik már M címkéjű csúcs \(\Rightarrow\) M régi
    3. ha M-ben nincs aktivizálható átmenet \(\Rightarrow\) M zsákutca
    4. M-ben \(\forall\)t aktivizálható átmenetre kiszámoljuk MtM'-t
      1. Ha a gyökértől M-ig \(\exists\)M'' : M'' -t lefedi M' és M' \(\not=\) M'', akkor minden p \(\in\) M' : M'(p) > M''(p) helyre: M'(p) := \(\omega\)
      2. M' új csúcs: új := új \(\cup\) {M'}, az él címkéje t lesz

petri_halo elerhetosegi

Legyen G a (N,M0) Petri háló lefedhetőségi fája.

Állapotgép: \(\forall\)t \(\in\) T: |•t| = |t•| = 1

Jelzett háló: \(\forall\)p \(\in\) P: |•p| = |p•| = 1

Petri dobozok

Lab - események egy előre megadott halmaza.

Átcímkézés:

\(\rho\) átcímkézés egy reláció:

\(\rho\) \(\subseteq\) (mult(Lab)) × Lab, úgy, hogy (\(\oslash\), \(\alpha\)) \(\in\) \(\rho\) akkor és csak akkor, ha \(\rho\) = {(\(\oslash\), \(\alpha\))}.

Címkézett Petri háló:

\(\Sigma\) = (S, T, W, \(\lambda\), M), ahol

Címkézett Petri háló

Címkézett Petri háló

Lépés:

Átmenetek egy véges zsákja U \(\in\) mult(T), (egy lépés) engedélyezett \(\Sigma\)-ban, ha minden helyen van elég súly ahhoz, hogy szimultán végre tudjuk hajtani az összes U-beli átmenetet.

Megjegyzés: Egy lépés nem kell, hogy maximális legyen, például {\(t_0\)} is egy lépése, illetve {\(t_0\)}{\(t_1\)}{\(t_2\)} {\(t_2\)} és {\(t_0\),\(t_2\)}{\(t_1\)}{\(t_2\)} is egy lépéssorozata \(\Sigma_0\)-nak.

T-megszorítás: \(\forall\)t \(\in\) T :• t \(\not=\) \(\oslash\) \(\not=\) t•

ex-megszorítás: létezik legalább egy belépési és egy kilépési hely.

e-irányított háló: \(\Sigma\) e-irányított, ha a belépési helyekhez nem vezet él.

x-irányított háló: \(\Sigma\) x-irányított, ha a kilépési helyekből nem vezet ki él.

ex-irányított háló: \(\Sigma\) ex-irányított, ha e-irányított és x-irányított

Petri doboz

\(\Sigma\) címkézett Petri háló Petri doboz, ha ex-megszorított valamint ex-irányított (és T megszorított).

Operátor doboz

Egy operátor doboz olyan doboz, melynek minden átmenetéhez transzformációs (nem konstans) átcímkézés van rendelve.

Megjegyzés: Az operátor dobozt úgy képzelhetjük el, mint egy mintát, amely sima dobozok egy halmazát (átmenetenként egyet) köt össze a belépési és a kilépési helyeiken keresztül.

Speciális operátor dobozok

Párhuzamos és elosztott rendszerek szemantikai leírásának lehetséges formái

Műveleti szemantika (cimkézett állapotátmentrendszer):

A műveleti szemantika azt mondja meg, hogy milyen lépéseket hajt végre a program, azonban helyesség bizonyítására nem alkalmas.

Nyelvtan:

\[P ::= \text{nil} \ | \ a \ p \ | \ a+p \qquad a,p\in A \text{ - események}\] + : nem determinisztikus választás (kb. szelektív várakozás)

Megjegyzés: vannak levezetési szabályok, de eléggé egyértelműek.

Környezet: \((p,e) \in P \times P\): \(e || p\) - az \(e\) a \(p\) környezete

\(p\) megfelel az \(e\) környezetnek, ha minden esetben: Amikor elakad a lebontás, akkor a környezet =nil kell legyen.

Példák:

  1. a b nil + b c nil || a(b nil + c nil) \(\xrightarrow{\text{a}}\)
    b nil || b nil + c nil \(\xrightarrow{\text{b}}\)
    nil || nil

    Ez esetben jobb oldal nil, tehát a program megfelel a környezetnek.

  2. a b nil + b c nil || a nil + b(c nil + a nil)

    Jelen esetben két megvizsgálandó ág lesz:

    A baloldal nem nil, de ez nem jelent problémát, mert a környezet (tehát a jobb oldal) nil lett.

    Tehát ez esetben is megfelel a program a környezetnek.

Leíró szemantika

A leíró szemantika a részprogramok viselkedéséből következtet az összetett programra (program szintézis).

Axiomatikus szemantika

Az axiomatikus szemantikát a programok verifikálásra (helyességellenőrzésre) fejlesztették ki.