PÁRHUZAMOS ARCHITEKTÚRÁK – 7 ABSZTRAKT SPECIFIKÁCIÓ

Slides:



Advertisements
Hasonló előadás
T ESZTELÉS. C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő.
Advertisements

Programozási feladatok
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
ADATBÁZISOK.
A számítógép műszaki, fizikai része
Kliens-szerver architektúra
Hatékonyságvizsgálat, dokumentálás
A normalizálás az adatbázis-tervezés egyik módszere
C++ programozási nyelv Gyakorlat hét
Rendszertervezés GIMP.
Az integrált áramkörök (IC-k) tervezése
Az előadásokon oldandók meg. (Szimulációs modell is tartozik hozzájuk)
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
MI 2003/ A következőkben más megközelítés: nem közvetlenül az eloszlásokból indulunk ki, hanem a diszkriminancia függvényeket keressük. Legegyszerűbb:
Kalman-féle rendszer definíció
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
Euklidészi gyűrűk Definíció.
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
13.a CAD-CAM informatikus
Nagy Gábor MF01-M2.
OSI Modell.
Mérés és adatgyűjtés Kincses Zoltán, Mingesz Róbert, Vadai Gergely 10. Óra MA-DAQ – Műszer vezérlése November 12., 15. v
Virtuális méréstechnika MA-DAQ műszer vezérlése 1 Mingesz Róbert V
Klaszterező algoritmusok smart city alkalmazásokhoz Gonda László Témavezető: Dr. Ispány Márton.
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Dr. Szalka Éva, Ph.D.1 Statisztika II. VII.. Dr. Szalka Éva, Ph.D.2 Mintavétel Mintavétel célja: következtetést levonni a –sokaságra vonatkozóan Mintavétel.
az MSAccess programmal
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
6. SZÁMELMÉLET 6.1. Oszthatóság
Funkciópont elemzés: elmélet és gyakorlat
Szoftvertechnológia Ember-gép rendszerek. Mit értünk rendszer alatt? Kapcsolódó komponensek halmaza – egy közös cél érdekében működnek együtt A rendszer.
Szoftvertechnológia Rendszertervezés.
1 Operációs rendszerek Az ütemezés megvalósítása.
Készítette: Kosztyán Zsolt Tibor
S S A D M ELEMZÉSI ÉS TERVEZÉSI MÓDSZERTAN
Hálózati architektúrák
SZÁMÍTÓGÉP ARCHITEKTÚRÁK - 4
Programtesztelés. Hibák keletkezésének okai nem egyértelmű vagy hiányos kommunikáció fejlesztés közben maga a szoftver bonyolultsága programozói (kódolási)
Minőségtechnikák I. (Megbízhatóság)
Bemutatkozás Név: Vespi Gábor Kelt: december 27.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
VÉGES AUTOMATA ALAPÚ TERVEZÉSI MODELL
NEMFORMÁLIS KÖVETELMÉNYEK ÁTALAKÍTÁSA FORMÁLIS SPECIFIKÁCIÓKKÁ Németh Gábor.
ABSZTRAKT TERVEZÉSI MODELL Németh Gábor. 2001Németh Gábor: Számítógép architektúrák 2 ABSZTRAKT SPECIFIKÁCIÓ Az ABSZTRAKT (ALGEBRAI) SPECIFIKÁCIÓs módszernél.
13. A zillmerezés, mint bruttó
Bevezetés az operációs rendszerek világába TMG SZK.
Termelő-fogysztó modell. A probléma absztrakt megfogalmazása: informális leírás. Adott egy N elemű közösen használt tároló, N  1. Adott a folyamatoknak.
Virtuális Méréstechnika Sub-VI és grafikonok 1 Makan Gergely, Vadai Gergely v
Mérés és adatgyűjtés laboratóriumi gyakorlat - levelező Sub-VI és grafikonok 1 Mingesz Róbert V
Az OSI modell 3. fejezet.
PÁRHUZAMOS ARCHITEKTÚRÁK – 9 IINTELLIGENS HÁLÓZATOK Németh Gábor
Gyurkó György. Az állapotmodellezés célja Általánosságban ugyanaz, mint a többi dinamikus modellezési technikáé: Jobban megismerni a problémát. Finomítani.
Programozás, programtervezés
UML modellezés 3. előadás
PÁRHUZAMOS ARCHITEKTÚRÁK – 12 ASSZOCIATÍV SZÁMÍTÓGÉPEK Németh Gábor.
PÁRHUZAMOS ARCHITEKTÚRÁK – 4 FORMÁLIS TERVEZÉSI MODELL LÉTREHOZÁSA Németh Gábor.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
BIOLÓGUS INFORMATIKA 2008 – 2009 (1. évfolyam/1.félév) 3. Előadás.
Írja fel a tizes számrendszerbeli
Algoritmizálás, adatmodellezés
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
PÁRHUZAMOS ARCHITEKTÚRÁK – 2 ELOSZTOTT RENDSZEREK ALAPJAI Németh Gábor.
2. Operációs rendszerek.
PÁRHUZAMOS ARCHITEKTÚRÁK – 8 MULTIPROCESSZOROS RENDSZEREK OPERÁCIÓS RENDSZEREI Németh Gábor.
PÁRHUZAMOS ARCHITEKTÚRÁK – 13 INFORMÁCIÓFELDOLGOZÓ HÁLÓZATOK TUDÁS ALAPÚ MODELLEZÉSE Németh Gábor.
Félcsoport (semigroup) = ({s},{ *: s s  s [infix]}. semigroup is a type specification = sorts: s oprs: *: s s  s [infix] eqns: m 1, m 2, m 3  s (m 1.
Modellek a számítógép megismeréshez Takács Béla
Hálózati struktúrák, jogosultságok
Előadás másolata:

PÁRHUZAMOS ARCHITEKTÚRÁK – 7 ABSZTRAKT SPECIFIKÁCIÓ Németh Gábor

ABSZTRAKT SPECIFIKÁCIÓ - 1 Az ABSZTRAKT (ALGEBRAI) SPECIFIKÁCIÓs módszernél a rendszer viselkedését egy esemény alapú absztrakt modellel specifikáljuk. A különféle műveletkombinációk között általánosított ekvivalencia relációkat adunk meg. Egy számítógéprendszer által végzett információ feldolgozást a rendszer bemenetén és kimenetén átfolyó adatáramlásként értelmezzük. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 2 Ezen absztrakt modell szerint két alapelemet kell definiálni: a kívánt műveletet biztosító (process) és a rendszernek a környezetéhez való csatlakozását biztosító (port) elemet.  A PROCESS egy specifikációs egységnek tekintett, valamilyen adatfeldolgozást végző entitás.  A PORT egy process része, és az illető folyamatnak a környezetével való kommunikációját biztosítja. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 3 KÖRNYEZET PROCESS PORT  A process és a port tulajdonságait ab- sztrakt módon írjuk le, csak a kívülről látható (kommuni- kációs) viselkedést specifikáljuk.  A specifikáció nem tartalmazza, hogyan valósítjuk meg ezt a viselkedést. A logikai és a fizikai megoldás szétválasztásával egy entitás a rendszer többi részének módosítása nélkül kicserélhető! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 4 FELÜLRŐL-LEFELÉ mozgó tervezési eljárást alkalmazunk LÉPÉSENKÉNTI FINOMÍTÁSsal.  A megoldandó problémát először egyetlen rendszerként (processként) specifikáljuk.  A következő lépés(ek)ben a rendszert egymással (portokon keresztül) kommunikáló alrendszerekre bontjuk, és í.t.  Minden részletezési szinten a korlátozásokat és a tulajdonságokat örököljük a felsőbb szintről és finomításokkal egészítjük ki. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 5 a környezet lehet ilyen  Egy process portjai az illető process környezetének absztrakt képét jelentik. a környezet lehet ilyen vagy ilyen A P1 P2 P3 P2 A P3 B C P1 A P1 P2 P3 D E 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 6 PORT SPECIFIKÁCIÓJA:  A porton felléphető egymásrahatás típusok felsorolása.  A végrehajtott egymásrahatások sorrendezésére és paramétereire vonatkozó korlátozások megadása.  Szerep (ez a port, vagy a hozzá csatlakozó másik kezdeményezi az egymásrahatást).  Kicserélt paraméterek típusának meghatározása.  Ez a port, vagy a hozzá csatlakozó másik határozza meg a kicserélt paraméter értékét? 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 7 A rendszert a részrendszerek megfelelő portjainak összekötésével írjuk le.  Két port összekötését a két port közötti általánosított ekvivalencia relációval határozzuk meg.  A két összekötött port szerepeinek az egymásrahatás kezdeményezésére és a paraméterek típusainak és értékeinek meghatározására vonatkozóan egymás komplemenseinek kell lenniük. Ezt formálisan ellenőrizzük! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 8 PROCESS SPECIFIKÁCIÓJA:  Portjainak felsorolása (mert azok tulajdonságait örökli).  A process különböző portjain fellépő egymásrahatások közötti relációk meghatározása. A processnek csak a kívülről látható viselkedését specifikáljuk. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 9 PÉLDA: Tervezzünk információs rendszert, melyben véges számú előfizető kérdéseire a rendszer válaszol.  Egy felhasználót egy user process képvisel.  A válaszokat egy server process szolgáltatja.  A user és a server együttműködéséhez a request és a response egymásrahatásokat definiáljuk. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 10 ELŐFELTEVÉSEK (a legmagasabb absztrakciós szinten): 1. A rendszerben nem lép fel meghibásodás. 2. A felhasználók nem befolyásolják egymás működését. 3. Egy meghatározott kérdésre adott válasz kizárólag az illető kérdés függénye. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 11 SPECIFIKÁCIÓK (a legmagasabb absztrakciós szinten):  A user és server processek megfelelő portjaikon keresztül kommunikálnak egymással. Ezek vagy azonosak, vagy kompatibilisek kell legyenek (önkényes tervezői döntés). port access is operation request (X: question); response (Y: answer); constraint (access/request)i  (access/response)i  (access/request)i+1 end access. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 12 process user is service: access end user. process server is users: array [user_identifier] of access; constraint for u in user_identifier holds (users[u]/response)i.Y = ƒ((users[u]/request)i.X end server. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 13  Egy rendszert alkotó processeinek és azok összeköttetéseinek felsorolásával specifikálunk. process system is S: server; U: array [user_identifier] of user; connection for u in 1..N: U[u].service = S.users[u] end system. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 14  A lépésenkénti finomítás illusztrálására funkcionálisan particionáljuk a server processt. 1 N 2 . . . multiplexer core server  örökölt portok új portok 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 15 process core is user: access; constraint (user/response)i.Y = ƒ((user/request)i.X) end core.  önkényes tervezői döntés önkényes tervezői döntés (IMPLE-MENTÁ-CIÓ!)  process multiplexer is single: array[user_identifier] of access; multiplexed: access; constraint for s in user_identifier holds i i’ ((single[s]/request)i = (multiplexed/request)i’ and (single[s]/response)i = (multiplexed/response)i’) end multiplexer. A FIFO tároló a multiplexer és a core között van! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 16 process server is M: multiplexer; C: core; connection M.multiplexed = C.user; u in user_identifier: users[u] is M.single[u] end server. csak virtuális összeköttetés  (ÖRÖKLŐDÉS!) • Az absztrakt tervezésnél nincs megvalósítási modellünk, így a lépésenkénti finomítás legutolsó lépésében egy megvalósítási transzformáció szükséges. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 17  Az orthogonális tulajdonságokat külön-külön kell specifikálni, mivel ebben az esetben teljesítésük egymástól függetlenül bizonyítható. Ez az absztrakt tervezés legnagyobb előnye, mert elkerülhető az állapot-robbanás.  (Sajnos nincs közvetlen módszer az orthogonális tulajdonságok meghatározására, csak ellenőrizhető a megadott tulajdonságok orthogonalitása.) 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 18 A lépésenkénti finomítás konkrét lépéseit jelentősen befolyásolja a particionálás módja. A következő szempontok szerint kell particionálni:  Funkcionálisan (ld. előző példa) (ez a rendszer működése szempontjából érthető).  Diagnosztika (meghatározza a processek között minimálisan szükséges összeköttetéseket és egymásrahatásokat).  Interfész specifikáció (maximalizálja a rendszer értékét, miközben minimalizálja költségét). 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 1 Feltételezzük, hogy az erőforrások intelligensek (processzorokat tartalmaznak). Az erőforrások egymást vizsgálhatják (meghatározott üzenetet küld az egyik processzor a másiknak, melyre helyes működés esetén meghatározott választ kell kapnia, meghatározott időn belül). A diagnosztikai gráf csúcsai azon egységeknek felelnek meg, melyek önállóan képesek más egységeket vizsgálni, az irányított élek pedig a vizsgálati kapcsolatokat és szerepeket képviselik. 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 2 2 processzor kölcsönös diagnosztikai gráfja: P1 P2 a12 a21 Akár jónak, akár rossznak minősítheti!  Nem lehet egyértelmű diagnosztizálást garantálni. 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 3 3 processzor diagnosztikai gráfja: P1 P2 P3 a12 a23 a31 (Ez csak P2 hibája esetén léphet fel.)  1 hiba diagnosztizálható. 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 4 Gráfelméleti alapon belátható, hogy n processzorból álló rendszerben 1 lépésben k hiba fedhető fel, ha n  2k + 1 és K(D)  k (K(D) a diagnosztikai gráf összefüggősége [hány csomópont eltávolításával szűnik meg az erős összefüggés]; D erősen összefüggő, ha tetszőleges 2 csomópontja kölcsönösen elérhető). VIGYÁZAT: az előző összefüggések állandósult hibákat tételeztek fel. Időszakos (tranziens) hiba esetén a vizsgálat nem teljes! 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 5  A diagnosztizálhatóság követelménye azt jelenti, hogy egy, a rendszer különböző részeinek diagnosztizálása szerint változó szerkezetű részgráfot félre kell tenni a hardver gráfból és csak a megmaradó rész használható felhasználói és operációs rendszer folyamatok futtatására. HOZZÁRENDELÉSI PROBLÉMA MULTIPROCESZ- SZOROS RENDSZEREKBEN: pontatlanul ismert szoftver gráf leképzése pontatlanul ismert hardver gráfra, pontatlanul ismert időzítési korlátozások mellett. 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 6 A diagnosztika tervezésének első lépése a hibamódok meghatározása. (Ha például egy számítógép rendszerben csak cserélhető kártya szintig kívánjuk a hiba helyét meghatározni, akkor egy memória kártya hibamódjai: tápfeszültséghiba, földhiba, címsínleragadás, adatsínleragadás stb.) 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 7 Meghatározzuk a hibaszimptómákat (az egyes hibamódoknak a hibaérzékelési mechanizmus által meghatározott megnyilvánulási formáit). A hibaszimptómák száma általában lényegesen kisebb a hibamódok számánál. (Gazdaságossági és átbocsátóképességi okok miatt általában nem valósítunk meg mindenre kiterjedő ellenőrzést.) Előfordulhat, hogy egy hibamód hatása csak közvetve jelentkezik hosszabb idő múlva (hibaterjedés)! 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 8 Kulcskérdés a hibamódok és a hibaszimptómák közötti kapcsolatok hatékony kezelése. Korrelációs tömb: a hibaszimptómák és a hibamódok közötti kapcsolat. Elemei: gyakorlati tapasztalatok, elméleti megfontolások és szimulációs eredmények alapján megközelített összetartozási valószínűségek. Általában kiegészítő vizsgálatok szükségesek. 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 9 A diagnosztika hatékonysága javítható a hibamód-hibaszimptóma reláció vektor bevezetésével. Egy hibamód több hibaszimptómát eredményezhet. Az észlelt hibaszimptóma alapján a vektor megadja, hogy milyen további hibaszimptómák megléte szükséges egy meghatározott hibamód azonosításához. Ehhez esetleg további vizsgálatok szükségesek. Ha ez nem vezet eredményre akkor fordulunk a korrelációs tömb további elemeihez. 2015 Németh Gábor: Párhuzamos architektúrák

KITÉRŐ: DIAGNOSZTIKA - 10 A diagnosztika által hibásnak talált egységet kiiktatjuk a rendszerből. A rendszerben általában több egység működik együtt, így a kiiktatásnak az ún. hatáskörzetre kell kiterjednie. A hatáskörzet gyakran dinamikus! (Függ a hibamód fellépése és a hibaszimptóma észlelése között eltelt időtől.) Célszerű a hibaterjedés korlátozására törekedni. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 19 Kölcsönösen ellentmondanak egymásnak! A lépésenkénti finomítás konkrét lépéseit jelentősen befolyásolja a particionálás módja. A következő szempontok szerint kell particionálni:  Funkcionálisan (ez a rendszer működése szempontjából érthető).  Diagnosztika (meghatározza a processek között minimálisan szükséges összeköttetéseket és egymásrahatásokat).  Interfész specifikáció (maximalizálja a rendszer értékét, miközben minimalizálja költségét). Kölcsönösen ellentmondanak egymásnak! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 20 INTERFÉSZ SPECIFIKÁCIÓ:  KONZISZTENS A process hiányzó információi a meglévőkből megjósolhatóak.  Elnevezési, paraméterátadási stb. konvenciók.  Minden fejlesztő rendszer rendelkezik vele, sajnos az egyes eszközök konvenciói eltérőek. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 21 ALAPVETŐ  A szükségtelen tulajdonságokat el kell hagyni.  Ugyanazt a funkciót nem szabad két különböző végrehajtási történettel felajánlani. A követelmény nyilvánvalónak tűnik, de egy tulajdonság szükséges voltát a tervező által elképzelt felhasználók megjósolt igényeire alapozzuk! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 22 ÁLTALÁNOS A processt használni kell tudni az eredeti tervezési célokon túlmenő feladatokra is.  Nem a problémát, hanem a probléma osztályt kívánjuk megoldani! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 23 MINIMÁLIS A független tulajdonságokat különálló egymásrahatási típusokba kell tenni.  A tulajdonságok függetlenségét a kérdéses szolgáltatás felhasználójának szemszögéből kell értelmezni!  Ez nyilvánvalóan tervező-függő (milyen felhasználói csoportot vesz figyelembe). 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 24 ÁTTETSZŐ  Az interfész rejtse el a jövőben megváltozható valamennyi megvalósítási tervezői döntést.  Az interfész maga ne változzon, ha az elrejtett megvalósítási döntés megváltozik.  Készítsük el a megvalósítás lehetséges változásainak jegyzékét (ún. titkok). 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 25 A rendszert particionáljuk modulokra úgy, hogy minden modul egyetlen titkot tartalmazzon. (Csak egy modult kell kicserélni, ha egy tervezői döntés megváltozik.)  A modul interfészét tervezzük meg úgy, hogy ne változzon meg a titok módosításakor.  A tervező nem szükségképpen tudja előre, hogy mi fog a termék élettartama alatt megváltozni! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 26 Funkcionális particionálás Diagnosztikai particionálás Titokelrejtési particionálás Végső particionálás DE EKKOR MÁR NEM IGAZ, HOGY EGYETLEN MODULT KELL MEGVÁLTOZTATNI, HA EGY TITOK MEGVÁLTOZIK! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 27  PÉLDA: stack modul BEMENET EGYMÁSRA- HATÁS TÍPUS KIMENET KIVÉTEL push s_ integer túlcsordulás pop sg_ üres  Megsérti a minimalitás követel- ményét (a stack tartalmának felfelé mozgatását kombinálja a stack legfelső elemének vizsgálatával). 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 28  ”Javított” stack modul: (két külön egymásrahatásba tesszük a stack felfelé tolását és legfelső elemének vizsgálatát)  DE: a szokásos stack használat hosszabb lesz! BEMENET EGYMÁSRA- HATÁS TÍPUS KIMENET KIVÉTEL push s_ integer túlcsordulás pop’ s_ üres integer top üres g_ 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 29  PÉLDA: gráf építő program készítése  Intuitív úton határozzuk meg a szükséges funkciókat. INICIALIZÁLÁS: megadjuk a gráf csomópontjainak megengedett maximális számát. BEMENET EGYMÁSRA- HATÁS TÍPUS KIMENET KIVÉTEL init s_ N: integer maxnodes . . .  A gráf mátrix formában tárolható, könnyen megvalósítható.  Megsérti az ÁTTETSZŐség követelményét. 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 30 BEMENET EGYMÁSRA- HATÁS TÍPUS KIMENET KIVÉTEL init s_ N: integer maxnodes numnodes N: integer . . . LEHETSÉGES CSOMÓPONTOK SZÁMA: g_  hasznos,  de nem szükséges (megsérti az ALAPVETŐség követelményét)! 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 31 BEMENET EGYMÁSRA- HATÁS TÍPUS KIMENET KIVÉTEL init s_ N: integer maxnodes numnodes . . . g_ add_edge s_ s: integer d: integer l: real node_number length arc_eqdst GRÁF BŐVÍTÉSE: csomópontot és élt csak együtt adhatunk meg.  Megsérti az ÁLTALÁNOSság követelményét (nem lehet külön él és csomópont felsorolást adni). 2015 Németh Gábor: Párhuzamos architektúrák

ABSZTRAKT SPECIFIKÁCIÓ - 32 A definiált modul nem teszi lehetővé csomópontok és élek törlését. Ez új egymásrahatás bevezetésével [s_del_edge(s, d, l)] lehetséges.  Ez hasznos, de  nem szükséges; bevezetése sérti az ALAPVETŐség követelményét (ugyanez a cél elérhető az init és azután egy sorozat add_edge használatával is). Hiánya viszont sérti az ÁLTALÁNOSság követelményét. 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 1 A rendszer tulajdonságait orthogonálisan kell specifikálni.  Egymástól függetlenül bizonyíthatók (nincs állapot- robbanás).  Nincs közvetlen módszerünk a specifikációk orthogonális felvételére.  Viszonylag könnyű formálisan bizonyítani a specifikációk teljesítését.  Absztrakt volta miatt nehezen értelmezhető. 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 2  PÉLDA: gyűrű specifikálása. Csak egyirányú átvitel  minden csomópontnak van egy bemenő és egy kimenő portja. inport node N[u] node N[modN(u)+1] outport out link L[u] in a b  ettől gyűrű 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 3 inport node N[u] node N[modN(u)+1] outport out link L[u] in a b process system is N: array [identifier] of node; L: array [identifier] of link; connection for u in 1..N: N[u].outport = L[u].in; N[modN(u) + 1].inport = L[u].out end system. 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 4 inport node N[u] node N[modN(u)+1] outport out link L[u] in a b port input is operation receive (a  b); constraint [(a  A)  (b  B)] end input. port output is operation send (a  b); constraint [(a  A)  (b  B)] end output. 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 5 inport node N[u] node N[modN(u)+1] outport out link L[u] in a b process node is inport: input; outport: output; constraint (outport/a)i  (outport/a)i+1; ƒ1(inport/b)i  (outport/a)i end node. 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 6  A node process feldolgozza a vett üzeneteket és az eredményeket ugyanabban a sorrendben adja ki, ahogy vette a megfelelő bemeneteket. process node is inport: input; outport: output; constraint (outport/a)i  (outport/a)i+1; ƒ1(inport/b)i  (outport/a)i end node.  ”nincs kimenet” helyett 0 hosszúságú kimenő üzenet.  ez írja le a feldolgozást. 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 7  A link process írja le az üzenetátvitelt két feldolgozó csomópont között.  Intuitív vizsgálat eredményeként a hibátlan átvitelt öt orthogonális követelménnyel specifikáljuk. process link is in: input; out: output; constraint /*R1: megőrzi az üzenetek sorrendjét*/ [(a1, a2  A), (b1, b2  B)]: [(a1  b1)  (a2  b2)]  {[(a1  a2)  (b1  b2)]  [(a1  a2)  (b1  b2)]  [(a2  a1)  (b2  b1)]};  Nehéz áttekinteni és értelmezni. 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 8 /*R2: nem veszik el üzenet az átvitel során*/ (a  A) (b  B): a  b; /*R3: nem keletkezik üzenet a linkben*/ (b  B) (a  A): a  b; /*R4: nincs üzenet duplikálás*/ [(a  A), (b1, b2  B)]: [(a  b1)  (a  b2)]  (b1  b2); /*R5: az üzenet tartalmát megőrzi*/ [(a  A), (b  B)]: ƒ2(in/a)i  (out/b)i end link.  kódátalakítás lehetséges! 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 9  Formálisan bizonyítsuk be például, hogy az üzenet tartal- ma nem változik meg, miközben körbeutazik a gyűrűn. inport node N[u] node N[modN(u)+1] outport out link L[u] in a b p q r s 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 10 1. N[u].inport: p  B N[u].outport: q  A úgy, hogy p  q process node is inport: input; outport: output; constraint (outport/a)i  (outport/a)i+1; ƒ1(inport/b)i  (outport/a)i end node.  ƒ1(p)  q 2. N[modN(u)+1].inport: r  B N[modN(u)+1].outport: s  A úgy, hogy r  s  ƒ1(r)  s 2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 11 inport node N[u] node N[modN(u)+1] outport out link L[u] in a b p q r s ƒ2(q)  r ƒ1(p)  q process link is ……………. constraint /*R5: az üz. tart. megőrzi*/ [(a  A), (b  B)]: ƒ2(in/a)i  (out/b)i ƒ1(r)  s 3. ƒ2(q)  r 4. p  s ( tranzitív).  2015 Németh Gábor: Párhuzamos architektúrák

Németh Gábor: Párhuzamos architektúrák FORMÁLIS BIZONYÍTÁS - 12 Sajnos az alkalmazott formális bizonyítási eljárás (útkeresés gráfon) nem tudja kezelni az univerzális kvantorokat (, és ), ezeket csak kerülő úton tudjuk leírni. 2015 Németh Gábor: Párhuzamos architektúrák