1 / 61

Konkurens programok szintézise

Konkurens programok szintézise. Kozma László ELTE IK Alkalmazott Matematikai és Informatikai Szeminárium. Elméleti alapok. Párhuzamos programok szintézisére különböző matematikai eszközök állnak rendelkezésünkre: a klasszikus elsőrendű logika, a temporális vagy más néven időlogikák,

elinor
Download Presentation

Konkurens programok szintézise

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Konkurens programok szintézise Kozma László ELTE IK Alkalmazott Matematikai és Informatikai Szeminárium Budapest, 2006.02.27.

  2. Elméleti alapok • Párhuzamos programok szintézisére különböző matematikai eszközök állnak rendelkezésünkre: • a klasszikus elsőrendű logika, • a temporális vagy más néven időlogikák, • a különböző fajta algebrák stb.

  3. Konkurens programok szintézise az elsőrendű logikában • A konkurens programok olyan speciális párhuzamos programok, amelyekben • nem-determinisztikus szekvenciális programok, az ún. folyamatok működnek együtt egy közös cél megvalósítása érdekében. • Ezek a folyamatok vagy • közös, osztott változókon keresztül cserélnek egymással információt, • vagy minden folyamat saját, helyi adattárolóval rendelkezik és üzenetváltásokkal tartják a kapcsolatot egymással.

  4. Konkurens programok • Modellünkben egy P konkurens program a következő (atomi) utasítások halmazából áll: • < Szinkronizációs Feltétel Tevékenység>. • P:: shared X; Initiate X; cobegin repeat P1||...|| repeat PNcoend • ahol P jelöli a PG(Bi Si) programot, az X pedig osztott változóinak halmazát • minden i-re Pi a <Bi(X)  Si(X)> alakú atomi átmenet ismételt végrehajtásából áll • Bi(X) egy szinkronizációs feltétel, amely függhet az osztott változóktól • Si(X) szekvenciális utasítások sorozata [4].

  5. Szemantika • PG(Bi Si) absztrakt program nem-determinisztikus, ciklikus program. • Ennek a programnak a szemantikáját azzal a leggyengébb előfeltétellel definiáljuk, amely biztosítja , hogy a program véges számú átmenetének végrehajtása után az R predikátum szükségszerűen előálljon. • Ezt a leggyengébb előfeltételt a következő fixpontegyenlet legkisebb fixpontjaként kaphatjuk meg: • H = R  BB k=1N (Bk wp(Sk , H)) • ,ahol • BB = k=1VN Bk, • R a célpredikátum és • wp(S,H) a Dijkstra-féle leggyengébb előfeltétel függvény.

  6. A (gyengén) helyes konkurens programok szintézise • A feladat definiálása • Folyamatok meghatározása • Osztott változók bevezetése • Invariáns meghatározása • A megoldás váza • Szekvenciális utasítások sorozata • Atomi tevékenységek meghatározása • Az absztrakt program generálása • Az őrfeltételek meghatározása a szemantika alapján • Az absztrakt program megvalósítása • Célnyelvtől függő módon [1],[13].

  7. Az erősen helyes konkurens programok szintézise • Definíció: Egy gyengén helyes konkurens program erősen helyes, ha mentes a globális holtponttól és az egyes komponensek koplalás-mentesek. • Definíció: Egy PG(Bi Si) program akkor és csak akkor mentes a globális holtponttól, ha a BB predikátum a PG(Bi Si) program invariáns, ahol BB = i=1VN Bi • Állítás: Egy PG(Bi Si) program akkor és csak akkor mentes a globális holtponttól, ha minden i-re (1 <= i <= N) Bi wp(Si , BB).

  8. Holtpontmentesség • Definíció: Egy PG(i  Si)program a PG(Bi Si) programnak akkor és csak akkor nem üres erősítése, ha minden i-re (1 <= i <= N) i Bi és  false. • Tétel. Egy adott PG(Bi Si) programnak akkor és csak akkor létezik nem üres PG(i Si) globális holtponttól mentes erősítése, ha létezik egy D predikátum, amely nem azonosan hamis, kielégíti a • D i=1N (Bi wp(Si , D)) kifejezést és D a PG(i Si) invariánsa. • Következmény. Legyen PG(Bi Si) olyan program, amelynek a J predikátum az invariánsa. A globális holtpont akkor és csak akkor előzhető meg ezen invariáns erősítésével, ha létezik olyan D predikátum, amely nem azonosan hamis és kielégíti a D  J i=1N wp(Si , D) kifejezést. A PG(i Si)program leggyengébb biztos invariánsa a D = D  J  i=1N wp(Si , D) egyenlet legnagyobb fixpontja lesz, amely levezethető a fixpont tétel duálisa alapján.

  9. Koplalás-mentesség • A PG(i Si) program koplalás-mentes erősítése hasonló módon levezethető. Egy PG(Bi Si) program < Bj Sj > komponense akkor és csak akkor koplalás-mentes, ha a Bj predikátum a • PG(Bi Si, i  j) programnak nem invariánsa. • Következmény. A PG(i Si) program egy < Bj Sj > komponense akkor és csak akkor koplalhat, ha a K  K Bji=1ijN (Bi wp(Si , K)) leggyengébb megoldása nem azonosan hamis. A legnagyobb koplalási tartomány meghatározása: Minden j-re oldjuk meg a K = K Bji=1ijN (Bi wp(Si , K)) fixpont egyenleteket, keressük meg a legnagyobb fixpontot. A PG(i Si) program akkor és csak akkor mentes az egyedi koplalástól, ha minden j-re K  false.

  10. Konkurens programok szintézise temporális logikákban • A PTL szintaxisa • Legyen A atomi ítéletek megszámlálható halmaza; •  és  logikai műveletek; , ,  és U temporális operátorok. • Formulák: • minden atomi ítélet formula; • ha A formula, akkor A, A, A és A szintén formulák; • ha A és B formulák, akkor AB és AUB is formulák. • További operátorok a szokásos módon vezethetõk be, így a , ,  stb.

  11. A PTL szemantikája • Egy K temporális (vagy Kripke) struktúra leképezések {0,1,2,...} végtelen sorozata, ahol i: A{t,f}. • A sorozat elemeit a továbbiakban állapotoknak nevezzük, 0 a kezdeti állapot. • Minden K temporális struktúrára, minden i N0-ra és minden F formulára Ki(F) jelöli az F formula igazságértékét az i állapotban: • Ki(v)=i(v) vA • Ki(A)=t Ki(A)=f • Ki(AB)=t  Ki(A)=t és Ki(B)=t • Ki(A)=t  Kk(A)=t valamely ki-re • Ki(A)=t  Kk(A)=t minden ki-re • Ki(AUB)=t  Kk(B)=t valamely ki-re és Kn(A)=t minden n-re, (i<n<k), vagy Kn(A)=t minden n>i-re.

  12. Tabló a PTL-ben • A PTL tablójának felépítésekor a temporális operátorokat tartalmazó formulákat a következő azonosságok alapján sorolhatjuk be az  illetve  típusú formulák közé : • □f  f □f; • f  f f; • fUg  fU(f (fUg)). • Az  típusú illetve  típusú formulákat ezután a következő relációk alapján határozhatjuk meg.

  13.  típusú formulák • (a) f  g  {{f,g}}, azaz f  g akkor és csak akkor elégíthető ki, ha mind az f, mind pedig g kielégíthető; • (b) f  {{f}}; • (c) f  {{f}}; • (d) □f  {{f, □f}}; • (e) (fUg)  {{f, f (fUg)}}; • (f) f  {{f, f}}.

  14.  típusú formulák • (g) (f  g)  {{f},{g}}, • azaz (f  g) akkor és csak akkor elégíthető ki, ha vagy f kielégíthet, vagy pedig g kielégíthető; • (h) f  {{f},{f}}; • (i) (fUg)  {{f},{f (fUg)}}; • (j) □f  {{f},{□f}}.

  15. Elemi formula • Elemi formulának nevezzük azokat a formulákat, • amelyek atomi ítéletek vagy ezek negáltjai; • vagy amelyeknek fő összekötője a  temporális operátor (ez utóbbiakat -formuláknak nevezzük).

  16. Tabló a PTL-ben • Legyen p egy PTL formula. • A tabló gyökérpontját címkézzük meg {p}-vel. • Tegyük fel, hogy elkészítettünk egy gráfot, amelynek csúcspontjait a dekompozíciós szabályoknak megfelelően címkéztük meg és minden belső pontban bizonyos formulákat "feldolgozva" jelzéssel láttunk el. • Tegyük fel, hogy egyik végpontunk címkehalmaza  és ebben a q formula nem elemi és nincs még feldolgozva.

  17. Új csúcspontok • Ha q  típusú formula, legyen a csúcspont egyetlen fiának címkehalmaza {1,2} és ebben jelöljük meg q-t, mint feldolgozott formulát. • Ha q  típusú formula, legyen a csúcspont két fiának címkehalmaza {1} illetve {2}, és jelöljük meg a q formulát mindkét leszármazottban

  18. Visszacsatolás • Ha egy n csúcspont csak elemi és megjelölt formulákat tartalmaz, akkor legyen a csúcspontnak n1 az egyetlen leszármazottja. • n1 címkehalmazát az n -formuláiból úgy kapjuk meg, hogy ezek legkülső -operátorát elhagyjuk. • Ha a tabló felépítése során egy m csúcspont leszármazottjaként olyan n csúcspontot hoznánk létre, amelynek címkehalmaza megegyezik egy már létező k csúcspont címkehalmazával, akkor nem hozzuk létre az n csúcspontot, hanem m-et visszacsatoljuk k-hoz

  19. Döntési eljárás • Állapotnak nevezzük azokat a csúcspontokat, amelyek csak elemi vagy megjelölt formulákat tartalmaznak. • A gyökérpontot és egy állapot közvetlen leszármazottját elő-állapotnak nevezzük • A tablóban a csúcspontok száma legfeljebb 24k , ahol k a kiindulási formulánk hossza. • Ha a tabló valamely csúcspontja a p formulát és annak negáltját is tartalmazza, akkor a csúcspontot töröljük. Ha egy csúcspont összes leszármazottját töröltük, akkor töröljük a csúcspontot is.

  20. Törlési eljárás • Ha egy elő-állapot egy p vagy egy pUq alakú formulát tartalmaz, és ez nem kielégíthető egy elő-állapotban, akkor töröljük a csúcspontot. • A p formula kielégíthető egy elő-állapotban, ha el lehet jutni az elő-állapotból egy olyan csúcspontba, amelynek címkehalmaza tartalmazza p-t. • a pUq formula kielégíthető egy elő-állapotban, ha el lehet jutni az elő-állapotból egy olyan csúcspontba, amelynek címkehalmaza tartalmazza q-t. • A döntési eljárás akkor ér véget, ha töröltük az összes nem kielégíthető csúcspontot. • Tétel.Egy PTL formula akkor és csak akkor kielégíthető, ha a formulára generált tabló gyökérpontja nincs törölve.

  21. A döntési eljárás egy javítása • Mivel a tabló módszerrel generált gráf csúcspontjainak száma max. 24k , a tabló használata a fenti módon még nagyon kényelmetlen. • Abban az esetben , ha feltételezhetjük, hogy minden állapotban pontosan egy atomi ítélet igaz, az eljárás lényegesen egyszerűsíthető, esetleg linearizálható [6,7]. Ezt olyan módon érhetjük el, hogy a dekompozíciós eljárást minden p atomi ítéletre külön-külön elvégezzük, azt feltételezve, hogy a p atomi ítélet igaz, a többi atomi ítélet pedig hamis.

  22. Kommunikáló folyamatok szintézise • Specifikáljuk a folyamatokat • A specifikáció általánosítása • Alkalmazzuk a tabló módszert • Határozzuk meg az egyes célnyelvű folyamatokat

  23. Sok hasonló konkurens folyamat szintézise • A párhuzamos kiszámítás modellje • Egy P = P1\\ … \\ Pkkonkurens program véges számú, párhuzamosan végrehajtott P1,…,Pk szekvenciális folyamatból áll. • Egy Pi folyamat szinkronizációs váza egy automata (state machine), amelyet egy irányított gráf reprezentál. • A gráf minden éle egy B  A szinkronizációs utasítással cimkézett, ahol B egy őrfeltételt (guard), A egy tevékenységet jelöl.

  24. Az MPCTL* specifikációs nyelv • Az MPCTL* (Many-Process CTL*) specifikációs nyelv a CTL* (Computational Tree Logic*) temporális logika egy kiterjesztése • A CTL* egy ítéletalapú elágazó idejű temporális logika (propositional branching-time temporal logic).

  25. A CTL* szintaxisa • (S1) Minden atomi ítélet egy állapot formula; • (S2) ha f,g állapot formulák, akkor fg, f is állapot formulák; • (S3) ha f egy útformula, akkor Ef és Af állapot formulák. • (P1) Minden állapot formula egyúttal útformula is; • (P2) ha f,g útformulák, akkor fg, f is útformulák; • (P3) ha f,g útformulák, akkor Xjf, fUg is útformulák.

  26. Modalitások • Path quantifiers: • Ef intuitív jelentése: létezik olyan maximalis út, amelyre az f teljesül. • Af intuitív jelentése: f teljesül minden maximális útra. • Linear-time modalities: • G (always) • F (sometime) • Xjf (stong nexttime) intuitív jelentése: az Xjf formula teljesül egy s állapotban egy maximális úton, ha a Pj folyamat következő atomi tevékenységének végrehajtásával az s állapotból közvetlenül elérhető állapotban az f teljesül. • Yj (weak “nexttime”) • FUg formula teljesül egy maximális úton egyállapotban, ha létezik olyan s állapot a maximális úton, ahol g teljesül és f az s állapotig minden állapotban teljesül az úton, de az s állapotban már nem feltétlen teljesül.

  27. A CTL* szemantikája • Legyen M = (S, Ri1,…, Rik), ahol • S az állapotok egy megszámlálható halmaza. Minden állapot egy olyan leképezés, amely az atomi ítéletek halmazát az {true, false} halmazra képezi le. • Rij S x S, egy bináris reláció, amely az ij szekvenciális folyamat átmeneteit adja meg. • Legyen R = Ri1 …  Rik. • Egy út állapotok egy (s1,s2, …) szekvenciája, amelyekre i, (si, si+1)  R. • Egy teljes út (fullpath) egy maximális út. Egy teljes út egy (s1,s2,…) végtelen sorozat, kivéve ha valamely sk állapothoz nincs olyan sk+1 állapot amelyre (sk, sk+1 )  R.

  28. Jelölések •  = (s1,s2, …) egy teljes út, i = (si, si+1, si+2 …) egy suffix. • M,s1= f jelentése: f igaz az M struktúrában az s1állapotban. • M,= f jelentése: f igaz az M struktúrában a  teljes úton. • M,S = f jelentése: f igaz az M struktúrában sS állapotban.

  29. Szemantika 1 • (S1) M,s1= p iff s1(p) = true • (S2) M,s1= fg iff M,s1= f és M,s1= g M,s1= f iff not(M,s1= f) • (S3) M,s1= Ef iff létezik olyan  = (s1,s2, …) teljes út az M struktúrában, hogy M,= f ; M,s1 = Af iff minden  = (s1,s2, …) teljes útra az M struktúrában: M,= f.

  30. Szemantika 2 • (P1) M,= f iff M,s1= f • (P2) M,= fg iff M,= f és M,= g M,= f iff not(M,= f) • (P3) M,= Xjf iff 2 definiált és (s1,s2)  Rj és M,2= f M,= fUg iff létezik olyan i  [1 : ], hogy M,i= g és minden j [1 : (i-1)]: M, j= f.

  31. Jelölések • = f jelöli, hogy f érvényes, azaz igaz minden struktúra minden állapotában. • Ł jelöli a CTL* egy részlogikáját (sublogic). • Például Ł(,,AG(qi => AFri), AG(qi => AXri)) logika a CTL* egy részlogikája, amely az AG(qi => AFri), AG(qi => AXri) formulák összes pozitív kombinációját tartalmazza.

  32. Az összeköttetési reláció (Interconnection Relation) • I  {i1, … ,ik} X {i1, … ,ik} , ahol {i1, … ,ik} a K folyamatból álló rendszer azon folyamatainak indexét tartalmazza, amelyeket specifikálni akarunk. • Az i I j reláció akkor és csak akkor áll fenn az i és a j folyamatok között, ha i és j között kapcsolat van. • Az I reláció reflexív, szimmetrikus és totális, azaz minden folyamat legalább egy másik folyamattal összeköttetésben áll. • K folyamatból álló rendszerre több összekapcsolási séma definiálható, így a K folyamatból álló rendszer helyett a továbbiakban I rendszerről beszélünk (I-system). • Az I reláció része a probléma specifikációnak.

  33. MPCTL* (Many-Process CTL*) • Legyen AP = {APi1,…, APik} atomi formulák egy indexelt családja. Az APi halmaz formulái csak indexeikben különböznek az APj halmaz formuláitól. • Például. • APi = {Qi, Ri} és APj = {Qj, Rj}. • Egy spatial modalitást ivagy ijjelöl. imodalitás a i folyamatindexre vonatkozik, míg a ij modalitás azon i és j folyamatindexekre vonatkoznak, amelyeket az I reláció kapcsol össze. Ha a spatial(térbeli) modalitás i, akkor a CTL* formulában csak az APi halmazból való atomi formulák megengedettek. Ha a spatial modalitás ij, akkor a CTL* formulában csak az APi APj halmazból való atomi formulák megengedettek.

  34. Példa MPCTL* specifikációra • Kölcsönös kizárás specifikálása • Egy Pi folyamat az Ni , Ti , Ci állapotok közül minden időpillanatban pontosan egy állapotban lehet. • Az Ni állapot a folyamat nem kritikus szakaszának kódterületét, • a Ti állapot a kritikus szakaszba való belépési próbálkozás kódterületét, • a Ci állapot a folyamat kritikus szakaszának kódterületét jelöli. • Egy folyamat a nem kritikus szakaszában nem használ közös, kritikus erőforrásokat. • A Pi folyamat a Ti állapotába kerül, ha egy kritikus erőforrást akar megszerezni további működéséhez. Ebből az állapotból belép a kritikus szakaszába a lehető legrövidebb időn belül, feltéve, hogy a szükséges erőforrások rendelkezésére állnak.

  35. A rendszer specifikációja • A kezdeti állapotban minden folyamat a nem kritikus szakaszában van: iNi • Egy folyamat a nem kritikus szakaszból mindig a próbálkozás szakaszába megy át és az ilyen átmenet mindig lehetséges: i AG(Ni => (AYiTi EXiTi)) • Egy folyamat a próbálkozás szakaszából mindig a kritikus szakaszába megy át: iAG(Ti => (AYiCi))

  36. Egy folyamat a kritikus szakaszból mindig a nem kritikus szakaszába megy át és az ilyen átmenet mindig lehetséges: iAG(Ci => (AYiNi EXiNi)) • A Pi folyamat az Ni , Ti , Ci állapotok közül minden időpillanatban pontosan egy állapotban lehet: iAG(Ni(TiCi)) iAG(Ti(NiCi)) iAG(Ci (TiNi)) • A Pi folyamat nem koplal: iAG(Ti => (AFCi))

  37. Az egyik folyamat egy átmenete nem eredményezi egy másik folyamat valamely átmenetének bekövetkeztét: ijAG((Ni => AYjNi )  (Nj => AYiNj)) ijAG((Ti => AYjTi )  (Tj => AYiTj)) ijAG((Ci => AYjCi )  (Cj => AYiCj)) • Két folyamat nem lehet egyszerre a kritikus szakaszában: ijAG((Ci Cj ))

  38. Megjegyzések • Ha I = dom(I) x dom(I) – {(i,i) i dom(I)}, azaz a folyamatok minden két különböző párja I-kapcsolatban van, akkor a fenti specifikáció a K folyamat kölcsönös kizárását írja le. • Ha I = {{1,2},{2,3},{3,4},{4,5},{5,1}}, akkor öt étkező filozófust szerveztünk egy gyűrűbe. • Ha I = {{1,3},{1,4},{2,3},{2,4},{3,4}} és P1, P2 az olvasó folyamatokat, P3, P4 pedig az író folyamatokat jelenti, akkor az író-olvasó probléma egy specifikációját adtuk meg, ahol az íróknak nincs prioritása.

  39. A szintézis lényege • Adjuk meg a feladat specifikációját MPCTL*nyelven • Vezessünk le egy páros rendszert az adott temporális logikai specifikációból • Általánosítsuk a páros rendszert egy I-rendszerré.

  40. T2 x12 := 2 N2  (T2 x12 = 1) T1 C1 N1 N2C2 T1 x12 := 1 N1  (T1 x12 = 2) T2 C2 N2 N1 C1 Két folyamat kölcsönös kizárása:P1 // P2

  41. T3 x13 := 3 N3 (T3 x13 = 1) T1 C1 N1 N3C3 T1 x13 := 1 N1  (T1 x13 = 3) T3 C3 N3 N1 C1 Két folyamat kölcsönös kizárása:P1 // P3

  42. T3 x23 := 3 N3  (T3 x23 = 3) T2 C2 N2 N3C3 T2 x23 := 2 N2  (T2 x23 = 3) T3 C3 N3 N2 C2 Két folyamat kölcsönös kizárása:P2 // P3

  43. T2 T3 x12 := 2 // x13 := 3 T2 (N3C3)  x12 := 2 C1 (N2 (T2 x12 = 1)) (N3 (T3 x13 = 1)) T1 C1 N1 (N2C2)  T3 x13:= 3 (N2 C2 )  (N3 C3 ) Három folyamat kölcsönös kizárása: P1 // P2 // P3 • P1:

  44. T1 T3 x12 := 2 // x23 := 3 T1 (N3C3)  x12 := 1 C2 (N1 (T1 x12 = 2)) (N3 (T3 x23 = 2)) T2 C1 N2 (N1C1)  T3 x23:= 3 (N1 C1 )  (N3 C3 ) P2:

  45. T1 T2 x13 := 1 // x23 := 2 T1 (N2C2)  x13 := 1 C3 (N1 (T1 x13 = 3)) (N2 (T2 x23 = 3)) T3 C1 N2 (N1C1)  T2 x23:= 2 (N1 C1 )  (N2 C2 ) P3:

  46. Példa: a szorzás megvalósítása • Az “a*b” szorzatot akarjuk meghatározni akkor, ahol az a és b természetes számok • Tegyük fel, hogy van N objektumunk, amelyek a “+” műveletet hajtják végre; • van továbbá ugyanennyi objektumunk a “–” művelet végrehajtására; • Létezik egy sender ill., egy receiver objektum a pipeline rendszer elején ill., végén.

  47. A szorzás algoritmusa • Az objektumokat egy nem lineáris pipeline rendszerbe szervezzük • A páros indexű objektumok a “+”-objektumok (kivéve az utolsót, mert az a receiver) • A páratlan indexű objektumok a “–”-objektumok (kivéve az elsőt, mert az a sender) • Minden objektumnak három argumentuma van: szorzandó, a szorzó és a részeredmény. • A “+” objektum hozzáadja az első argumentumot a részeredmény argumentumhoz és az adatokat elküldi a következő “–” objektumnak. • A “–” objektum kivon egyet a második argumentumból és ha az eredmény nagyobb mint zéró, akkor elküldi az adatokat a következő “+” objektumnak, ha az eredmény zéró, akkor pedig a receiver-nek. • Ha az utolsó “–” objektum második argumentuma nem zéró, akkor az adatokat elküldi az első “+” objektumnak.

  48. A pipeline rendszer S + – + – R – + …

  49. A objektumokból álló pipeline rendszer szintézise • Az adott problémát két lépésben oldottuk meg. • Először kidolgoztunk egy algoritmust a sok hasonló objektumokból álló rendszer szintézisére, • Majd módszert adtunk pipeline rendszerek szinkronizációs részének szintézisére.

  50. Sok hasonló objektumokból álló rendszer szintézise • A következő problémákat oldottuk meg: • az összeköttetési relációt dinamikussá tettük; • kidolgoztunk egy technikát az objektumok hasonlóvá tételére; • Az öröklődés kezelésére módszert adtunk. inheritance. • A részletek megtalálhatóak cikkünkben: • Hajdara, Sz. – Kozma, L. – Ugron, B.: Synthesis of a system composed by many similar objects, Annales Univ. Sci. Budapest., Sect. Comp. 22 (2003), 127-150.

More Related