ABSZTRAKT TERVEZSI MODELL Nmeth Gbor 2001 Nmeth Gbor
ABSZTRAKT TERVEZÉSI MODELL Németh Gábor 2001 Németh Gábor: Számítógép architektúrák
ABSZTRAKT SPECIFIKÁCIÓ • 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. 2001 Németh Gábor: Számítógép architektúrák 2
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. 2001 Németh Gábor: Számítógép architektúrák 3
ABSZTRAKT SPECIFIKÁCIÓ - 3 A process és a port tulajdonságait absztrakt módon írjuk PORT le, csak a kívülről látható (kommunikációs) viselkedést PORT specifikáljuk. A specifikáció nem PROCESS 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ő! KÖRNYEZET 2001 Németh Gábor: Számítógép architektúrák 4
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. 2001 Németh Gábor: Számítógép architektúrák 5
ABSZTRAKT SPECIFIKÁCIÓ - 5 Egy process portjai az illető process környezetének absztrakt képét jelentik. P 1 B P 1 D A P 2 C P 3 2001 P 3 Németh Gábor: Számítógép architektúrák P 3 E 6
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. 2001 másik Szerep (ez a port, vagy a hozzá csatlakozó 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? Németh Gábor: Számítógép architektúrák 7
ABSZTRAKT SPECIFIKÁCIÓ - 7 • A rendszert a részrendszerek megfelelő portjainak összekötté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! 2001 Németh Gábor: Számítógép architektúrák 8
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. 2001 Németh Gábor: Számítógép architektúrák 9
ABSZTRAKT SPECIFIKÁCIÓ - 9 u 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. 2001 Németh Gábor: Számítógép architektúrák 10
ABSZTRAKT SPECIFIKÁCIÓ - 10 o 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. 2001 Németh Gábor: Számítógép architektúrák 11
ABSZTRAKT SPECIFIKÁCIÓ - 11 o 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. 2001 Németh Gábor: Számítógép architektúrák 12
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. 2001 Németh Gábor: Számítógép architektúrák 13
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. 2001 Németh Gábor: Számítógép architektúrák 14
ABSZTRAKT SPECIFIKÁCIÓ - 14 A lépésenkénti finomítás illusztrálására funkcionálisan particionáljuk a server processt. server 1 2 N . . . multiplexer core örökölt portok új portok 2001 Németh Gábor: Számítógép architektúrák 15
ABSZTRAKT SPECIFIKÁCIÓ - 15 process core is user: access; önkényes tervezői döntés constraint (user/response)i. Y = ƒ((user/request)i. X) end core. önkényes tervezői process multiplexer is döntés single: array[user_identifier] of access; (IMPLEmultiplexed: access; MENTÁconstraint for s in user_identifier holds i i’ CIÓ!) ((single[s]/request)i = (multiplexed/request)i’ and (single[s]/response)i = (multiplexed/response)i’) end multiplexer. 2001 Németh Gábor: Számítógép architektúrák 16
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. 2001 Németh Gábor: Számítógép architektúrák 17
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. ) 2001 Németh Gábor: Számítógép architektúrák 18
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 (erről korábban volt szó) (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! 2001 Németh Gábor: Számítógép architektúrák 19
ABSZTRAKT SPECIFIKÁCIÓ - 19 • 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. 2001 Németh Gábor: Számítógép architektúrák 20
ABSZTRAKT SPECIFIKÁCIÓ - 20 o 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! 2001 Németh Gábor: Számítógép architektúrák 21
ABSZTRAKT SPECIFIKÁCIÓ - 21 o Á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! 2001 Németh Gábor: Számítógép architektúrák 22
ABSZTRAKT SPECIFIKÁCIÓ - 22 o 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). 2001 Németh Gábor: Számítógép architektúrák 23
ABSZTRAKT SPECIFIKÁCIÓ - 23 o Á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. 2001 Készítsük el a megvalósítás lehetséges változásainak jegyzékét (ún. titkok). Németh Gábor: Számítógép architektúrák 24
ABSZTRAKT SPECIFIKÁCIÓ - 24 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! 2001 Németh Gábor: Számítógép architektúrák 25
ABSZTRAKT SPECIFIKÁCIÓ - 25 Funkcionális particionálás Diagnosztikai particionálás RENDSZER Titokelrejtési particionálás DE EKKOR MÁR NEM IGAZ, HOGY EGYETLEN MODULT KELL MEGVÁLTOZTATNI, HA EGY TITOK MEGVÁLTOZIK! Végső particionálás 2001 Németh Gábor: Számítógép architektúrák 26
ABSZTRAKT SPECIFIKÁCIÓ - 26 PÉLDA: stack modul EGYMÁSRATÍPUS BEMENET KIMENET HATÁS push s_ pop sg_ KIVÉTEL túlcsordulás integer üres Megsérti a minimalitás követelményét (a stack tartalmának felfelé mozgatását kombinálja a stack legfelső elemének vizsgálatával). 2001 Németh Gábor: Számítógép architektúrák 27
ABSZTRAKT SPECIFIKÁCIÓ - 27 ”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! EGYMÁSRATÍPUS BEMENET KIMENET HATÁS 2001 push s_ pop’ s_ top g_ KIVÉTEL túlcsordulás integer üres integer Németh Gábor: Számítógép architektúrák üres 28
ABSZTRAKT SPECIFIKÁCIÓ - 28 PÉLDA: gráf építő program készítése Intuitív úton határozzuk meg a szükséges funkciókat. EGYMÁSRATÍPUS BEMENET KIMENET HATÁS init s_ N: integer KIVÉTEL maxnodes . . . INICIALIZÁLÁS: megadjuk a gráf csomópontjainak megengedett maximális számát. A gráf mátrix formában tárolható, könnyen megvalósítható. Megsérti az ÁTTETSZŐség követelményét. 2001 Németh Gábor: Számítógép architektúrák 29
ABSZTRAKT SPECIFIKÁCIÓ - 29 EGYMÁSRATÍPUS BEMENET KIMENET HATÁS init s_ numnodes g_ KIVÉTEL maxnodes N: integer . . . LEHETSÉGES CSOMÓPONTOK SZÁMA: hasznos, de nem szükséges (megsérti az ALAPVETŐség követelményt)! 2001 Németh Gábor: Számítógép architektúrák 30
ABSZTRAKT SPECIFIKÁCIÓ - 30 EGYMÁSRATÍPUS BEMENET KIMENET HATÁS init s_ numnodes g_ add_edge s_ KIVÉTEL maxnodes N: integer 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). 2001 Németh Gábor: Számítógép architektúrák 31
ABSZTRAKT SPECIFIKÁCIÓ - 31 • 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 (teljesítenénk az ÁLTALÁNOSság követelményét), 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. 2001 Németh Gábor: Számítógép architektúrák 32
ABSZTRAKT SPECIFIKÁCIÓ - 32 • 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ő. 2001 Németh Gábor: Számítógép architektúrák 33
ABSZTRAKT SPECIFIKÁCIÓ - 33 PÉLDA: gyűrű specifikálása. Csak egyirányú átvitel minden csomópontnak van egy bemenő és egy kimenő portja. i n p o r t 2001 node N[u] o u t p o r t a i n o link b u L[u] t Németh Gábor: Számítógép architektúrák i n p o r t node N[mod. N(u)+1] ettől gyűrű o u t p o r t 34
ABSZTRAKT SPECIFIKÁCIÓ - 34 i n p o r t node N[u] o u t p o r t a i n o link b u L[u] t i n p o r t node N[mod. N(u)+1] o u t p o r t 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[mod. N(u) + 1]. inport = L[u]. out end system. 2001 Németh Gábor: Számítógép architektúrák 35
ABSZTRAKT SPECIFIKÁCIÓ - 35 i n p o r t node N[u] o u t p o r t a i n o link b u L[u] t i n p o r t node N[mod. N(u)+1] o u t p o r t port input is port output is operation receive (a b); operation send (a b); constraint [(a A) (b B)] end input. end output. 2001 Németh Gábor: Számítógép architektúrák 36
ABSZTRAKT SPECIFIKÁCIÓ - 36 i n p o r t node N[u] o u t p o r t a i n o link b u L[u] t i n p o r t node N[mod. N(u)+1] process node is inport: input; outport: output; constraint (outport/a)i+1; ƒ 1(inport/b)i (outport/a)i end node. 2001 Németh Gábor: Számítógép architektúrák o u t p o r t 37
ABSZTRAKT SPECIFIKÁCIÓ - 37 A node process feldolgozza a vett üzeneteket és az eredményeket ugyanabban a sorrendben adja ki, ahogy vette a megfelelő bemeneteket. process node is ”nincs kimenet” helyett inport: input; 0 hosszúságú kimenő üzenet. outport: output; constraint (outport/a)i+1; ƒ 1(inport/b)i (outport/a)i end node. ez írja le a feldolgozást. 2001 Németh Gábor: Számítógép architektúrák 38
ABSZTRAKT SPECIFIKÁCIÓ - 38 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; Nehéz áttekinteni és értelmezni. out: output; constraint /*R 1: megőrzi az üzenetek sorrendjét*/ [(a 1, a 2 A), (b 1, b 2 B)]: [(a 1 b 1) (a 2 b 2)] {[(a 1 a 2) (b 1 b 2)] [(a 2 a 1) (b 2 b 1)]}; 2001 Németh Gábor: Számítógép architektúrák 39
ABSZTRAKT SPECIFIKÁCIÓ - 39 /*R 2: nem veszik el üzenet az átvitel során*/ (a A) (b B): a b; /*R 3: nem keletkezik üzenet a linkben*/ (b B) (a A): a b; /*R 4: nincs üzenet duplikálás*/ [(a A), (b 1, b 2 B)]: [(a b 1) (a b 2)] (b 1 b 2); /*R 5: 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! 2001 Németh Gábor: Számítógép architektúrák 40
ABSZTRAKT SPECIFIKÁCIÓ - 40 Formálisan bizonyítsuk be például, hogy az üzenet tartalma nem változik meg, miközben körbeutazik a gyűrűn. i n p o r t p 2001 node N[u] o u t p o r t a q i n o link b u L[u] t r Németh Gábor: Számítógép architektúrák i n p o r t node N[mod. N(u)+1] o u t p o r t 41 s
ABSZTRAKT SPECIFIKÁCIÓ - 41 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+1; ƒ 1(inport/b)i (outport/a)i end node. ƒ 1(p) q 2. N[mod. N(u)+1]. inport: r B N[mod. N(u)+1]. outport: s A úgy, hogy r s ƒ 1(r) s 2001 Németh Gábor: Számítógép architektúrák 42
ABSZTRAKT SPECIFIKÁCIÓ - 42 i n p o r t p node N[u] o u t p o r t a q i n o link b u L[u] t r i n p o r t node N[mod. N(u)+1] ƒ 2(q) r ƒ 1(p) q o u t p o r t ƒ 1(r) s s process link is ……………. constraint /*R 5: az üz. tart. megőrzi*/ 4. p s ( tranzitív). [(a A), (b B)]: ƒ 2(in/a)i (out/b)i 3. ƒ 2(q) r 2001 Németh Gábor: Számítógép architektúrák 43
- Slides: 43