VÉGES AUTOMATA ALAPÚ TERVEZÉSI MODELL Németh Gábor
Németh Gábor: Számítógép architektúrák MODELL ALAPÚ TERVEZÉS A rendszert általában egy VÉGES ÁLLAPOTÚ AUTOMATÁval írjuk le. Az állapotátmeneteket eredményező események a környezetből a portokon keresztül érkező üzenetek. Az elosztott rendszer konkurrens működését nagyon jól lehet kezelni ezzel a modellel. Közvetlen módszerek léteznek a megvalósításra. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 2 Nagy rendszerek esetén az állapotok száma kezelhetetlenül nagy lesz. A megoldás helyességének bizonyítása nehéz, nincs rá közvetlen módszer. A finomítási lépések (amikor a rendszert egymással kommunikáló alrendszerekre bontjuk fel) a tervezőt általában meghatározott megvalósítások felé kényszerítik. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 3 PÉLDA: Tervezzünk egy tantárgyra jelentkezett hallgatókat nyilvántartó és félévüket elismerő rendszert. (MEGJEGYZÉS: A véges automata alapú módszer lényeges sajátosságainak kiemelésére a példában nincs szükség lépésenkénti finomításra, a formális specifikáció már magát a megvalósítást adja.) 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 4 ELŐFELTEVÉSEK: 1. A hallgatóknak egyedi neve van. (Tipikus példája a környezetből és az önkényes tervezői döntésből együttesen származó előfeltevésnek.) 2. Egyetlen beviteli terminál van a rendszerben. (Akár környezetből származó, akár önkényes tervezői döntésből származó előfeltevés lehet.) 3. Csak a beiratkozott hallgatók látogathatják a tantárgyat. 4. Nem lép fel meghibásodás a rendszerben. (Önkényes tervezői döntés a feladat egyszerűsítésére.) 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 5 SPECIFIKÁCIÓK: 1. STUDENTS /*állapot specifikálása*/ done, notdone: set of NAME done notdone = /*korlátozás*/ Az állapot specifikáció korlátozását a rendszer bármilyen műveletsorozata végrehajtásának eredményeként adódó új állapotnak is teljesítenie kell. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 6 2. ENROLL /*művelet specifikálása*/ STUDENTS /*jelenlegi állapot*/ STUDENTS’ /*új állapot*/ nm: NAME nm done notdone /*a művelet saját kiegészítő korlátozása*/ done’ := done /*állapotátmenet*/ notdone’ := notdone {nm} /*állapotátmenet*/ A done notdone = korlátozásnak teljesülnie kell a művelet végrehajtása előtt és a done’ notdone’ = korlátozásnak teljesülnie kell a művelet végrehajtása után, azaz az állapotok korlátozásait örököljük. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 7 3. COMPLETE STUDENTS STUDENTS’ nm: NAME nm notdone done’ := done {nm} notdone’ := notdone - {nm} 4. REPORT result’: set of NAME result’ = done’ := done notdone’ := notdone 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 8 • A végesállapotú automata működése implikálja, hogy egy kezdeti állapotot kell definiálni. • A kezdeti állapotnak is ki kell elégítenie az általános done notdone = korlátozást. 5. STUDENTSinit STUDENTS done := notdone := ÉS HA KIKAPCSOLJUK A TÁPFESZÜLTSÉGET?! SAJNOS A MODELL NEM TUDJA KEZELNI A TÁROLÁST/BETÖLTÉST. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 9 SPECIFIKÁCIÓ ELLENŐRZÉSE: MEGVALÓSÍTHATÓSÁG Egy specifikáció akkor és csak akkor valósítható meg, ha 1. a kezdeti állapot feltételei teljesíthetőek, és 2. minden, az előfeltételeknek és a saját korlátozásaiknak megfelelően végrehajtott utasítás megengedett állapotot eredményez. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 10 A példában a kezdeti feltétel STUDENTSinit STUDENTS done := notdone := a done = és notdone = választással nyilvánvalóan teljesíti az érvényes állapot done notdone = feltételét. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 11 A megvalósíthatóság 2. feltételét ellenőrizzük pl. az ENROLL művelet esetén (a művelet akkor érvényes, ha végrehajtásakor teljesítjük saját egyedi korlátozását is [nm done notdone]): [(done notdone = ) (nm done notdone)] done (notdone {nm}) = (done’, notdone’): [(done’ = done) (notdone’ = notdone {nm}) (done’ notdone’ = )] 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 12 Egy jó rendszer specifikációjának ELÉRHETŐnek kell lennie. A specifikáció elérhető, ha minden legális állapotot bármelyik legális állapotból el lehet érni legális műveletek valamilyen véges sorozatával. Nem elérhető specifikáció esetén valamilyen hiba vagy nem megengedett művelet olyan állapotba viheti a rendszert, mely a legális műveletekkel nem érhető el. A rendszer csak hidegindítással vihető vissza a helyes működésbe. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 13 A végesállapotú gépet a következőképpen jellemezhetjük: x(n+1) = Gx(n) + Hu(n) ahol x(n) az n. állapot, u(n) az n. bemenet és G és H a vonatkozó átmeneti függvények. Az egyszerűség kedvéért tekintsünk csak időinvariáns rendszereket (sem meghibásodás, sem konfiguráció módosítás nem történik). Kissé más formában: x(n+1) = G[x(n) + Fu(n)] ahol G k k nemszinguláris mátrix és F k m mátrix. 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 14 A cél állapot legyen az állapottér origója (mindig ide transzformálható). n = 0-ból indulva: x(1) = G[x(0) + Fu(0)] x(1) = 0 választással meghatározhatók azon x(0) kiinduló állapotok, melyekből a rendszer egy lépésben a kívánt állapotba vihető: 0 = G[x(0) + Fu(0)] Mivel G nemszinguláris mátrix: x(0) = -Fu(0) 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 15 Hasonlóan, x(2) = 0 választással meghatározhatók azon x(0) kiinduló állapotok, melyekből a rendszer két lépésben a kívánt állapotba vihető: x(2) = G[x(1) + Fu(1)] = G[G{x(0) + Fu(0)} + Fu(1)] = G2x(0) + G2Fu(0) + GFu(1) = 0 Ebből: x(0) = -Fu(0) - G-1Fu(1) k lépésben a rendszer a következő kiinduló állapotból vihető a kívánt állapotba: x(0) = -Fu(0) - G-1Fu(1) - … - G-(k-1)Fu(k-1) 2001 Németh Gábor: Számítógép architektúrák
MODELL ALAPÚ TERVEZÉS - 16 Ha -F, -G-1F, …, -G-(k-1)F lineárisan függetlenek, akkor bármilyen x(0) előállítható lineáris kombinációjukból. A specifikáció elérhető, ha P = [F | GF | … | Gk-1F] mátrix rangja k. A részrendszerek elérhetősége nem garantálja a teljes rendszer elérhetőségét! A fejlesztéshez megfelelő eszközök állnak rendelkezésre. 2001 Németh Gábor: Számítógép architektúrák