Professional Documents
Culture Documents
17b. Osztott Rendszerek Specifikációja És Implementációja PDF
17b. Osztott Rendszerek Specifikációja És Implementációja PDF
17.4. Csatornaváltozók . . . . . . . . . . . . . . . . . . . . . . . . 8
17.4.1. Csatornaváltozók m¶veletei . . . . . . . . . . . . . . 9
Osztott rendszerek
Programozási munkák során egyre többször fordul el®, hogy nagyobb, bo-
nyolultabb feladatokat kell megoldanunk e feladatok megoldása azonban
a klasszikus, egy számítógépes (processzoros) rendszereken már az emberiség
számára akár beláthatatlan id®igénnyel rendelkezne. A problémára megol-
dást kínál a párhuzamos, illetve az elosztott programozás technikája, amikor
a feladatot több számítógépen (processzoron), kisebb részfeladatok kompo-
nensekre bontásával hajtjuk végre.
2
Feladatok specikációja: haladási és biztonságossági feltételek 3
17.1.3. Fixpontfeltétel
Az FP xpontfeltételek állításokat fogalmaznak meg a program állapotára
abban az esetben, ha a program xpontba jutott. (dRe ∈ FP ≡ FP ⇒ R).
4 Absztrakt párhuzamos program tulajdonságai
17.2.2.1. Deníció.
7 s := {(dP e, dQe) | P Bs Q
→
és ∃s ∈ S : (P ∧ ¬Q ⇒ lf (s, Q))}
• 7→s ⊆ ,→s
A xpont tulajdonság tehát azt adja meg, hogy mely állítások igazak
a programra, amikor az xpontba került. A xpontba kerülést viszont egy
másik tulajdonság, a TERMs terminiálási tulajdonság biztosítja.
x Bs 7→s ,→s
P xP 3 3 3
P x¬P 3
↑ xP 3
Px ↑ 3 3 3
↓ xP 3 3
Px ↓ csak akkor, ha P ≡↓
P ⇒ Q esetén P xQ
3 3 3
(következik szabály)
Tranzitivitás 3
Diszjunktivitás 3 3
P xQ és Q⇒R esetén QxR
3 3 3
( jobb oldal gyengítése)
P ⇒Q és QxR esetén P xR
3
(bal oldal er®sítése)
stabillal metszés 3 3 3
viselkedése oly módon, hogy egy ilyen nehezen belátható állítást az alábbi
tétel segítségével belássunk.
17.4. Csatornaváltozók
A párhuzamos programok nem egy komponensb®l, nem egy utasításból áll-
nak. A komponensek egymás között információt cserélhetnek, ennek módja
eltekintve az elméletben és gyakorlatban is veszélyes osztott memóriá-
tól a csatorna használata. A csatornán üzenetek továbbítódnak, a sor
adatszerkezetet valósítjuk meg.
A feladatok specikációjában a specikáció kifejez®erejének biztosí-
tása végett használunk történetváltozó t. A történetváltozóra a csatornára
Nevezetes feladatok megoldása párhuzamos és elosztott programokkal 9
írt összes üzenet felkerül, törölni nem lehet róla, míg a csatornáról olvasás a
csatornáról eltávolítja, leveszi az üzenetet. A csatornaváltozót a specikáci-
óban Ch (T)-vel jelöljük (T tetsz®leges típus), az x csatornaváltozó történetét
x változóban tároljuk.
A = Ch (N) × Ch (N)
x x
B = Ch (N) × Ch (N)
x0 x0
• Q ∈ TERMh
n
|| xi :=<>,
i=1
n
{ xi , xi+1 := lorem(xi ), hiext(xi+1 , fi (xi .lov), ha xi 6=<>}
i=1
17.5.3. FORK
A F ORK (elágazás) egy olyan program, mely a bemeneti csatornájára
érkez® adatokat sorrendhelyesen a két kimeneti csatornájára írja. Minden
bejöv® adatot kiír (nincs adatvesztés), és csak a bejöv® adatokat írja ki (nincs
zaj).
• Q := (x = x = x0 = x0 = y = · · · = z 0 = z 0 =<>) ∈ INITh
(SKIP,
{x, y := lorem(x), hiext(y, x.lov), ha x 6=<>
x, z := lorem(x), hiext(z, x.lov), ha x 6=<>})
split
A sorrendhelyességet a split függvény adja, amely csatornahármasokon értel-
mezett logikai állítás: split : Ch (a)×Ch (a)×Ch (a) −→ L. Három csatorna
split relációban van egymással, ha a már split relációban álló csatornákat egy
elemmel kiegészítve az a-ra írt elem b-n vagy c-n szükségszer¶en megjelenik.
split a legkisebb ilyen igazsághalmazú függvény.
12 Nevezetes feladatok megoldása párhuzamos és elosztott programokkal
17.5.3.1. Példa. Például az< 1, 2 >, < 1, 2 >, <> csatornák split relációban
vannak, ahogy < 1, 2 >, < 1 >, < 2 > és < 1, 2 >, < 2 >, < 1 > is.
De < 1, 2 >, < 2, 1 >, <> nincsenek split relációban, a felbontásuk nem
sorrendhelyes.
17.5.3.2. Példa. Az < 1, 2, 3 >, < 1, 3 >, < 2 > sorrendhelyes felbontás, míg
< 1, 2, 3 >, < 1 >, < 3, 2 > nem az.
17.5.4. MUX
A MUX a fork ellentettje: a két bemen® csatornával rendelkez® program
minden, a bemeneteken érkez® adatokat sorrendhelyesen a kimen® csatorná-
jára f¶zi, adatvesztés és zaj hozzáírása nélkül.
A feladat állapottere és a split deníciója a F ORK -nál látottakkal meg-
egyezik, azzal a megkötéssel, hogy x és y a be-, z pedig a kimeneti csatorna.
• Q := (x = x = x0 = x0 = y = · · · = z 0 = z 0 =<>) ∈ INITh
• ∀k ∈ N : |x| ≥ k ,→s |x − x| ≥ k
• ∀l ∈ N : |y| ≥ l ,→s |y − y| ≥ l
(SKIP,
{x, z := lorem(x), hiext(z, x.lov), ha x 6=<>
y, z := lorem(y), hiext(z, y.lov), ha x 6=<>})