Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Feladatok együttműködésének ellenőrzése Micskei Zoltán

Hasonló előadás


Az előadások a következő témára: "Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Feladatok együttműködésének ellenőrzése Micskei Zoltán"— Előadás másolata:

1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Feladatok együttműködésének ellenőrzése Micskei Zoltán Operációs rendszerek (vimia219)

2 Hyman algoritmusa turn=0, flag[0]=flag[1]=false; Protocol (int id) { do { flag[id] = true ; while (turn != id) { while (flag[1-id]) /* do nothing */ ; turn = id; } CriticalSection(id); flag[id] = false; } while (true) ; } 2 Lehetnek-e ketten egyszerre a kritikus szakaszban?

3 Peterson algoritmusa turn=0, flag[0]=flag[1]=false; Protocol (int pid) { while (true) { flag[pid]=true; turn=1-pid; while (flag[1-pid]&&turn==1-pid) /**/; CriticalSection(id); flag[pid]=false; } 3 Lehetnek-e ketten egyszerre a kritikus szakaszban?

4 Algoritmusok helyességének ellenőrzése  Hogyan döntsük el, hogy jó?  Erősen nézzük, és próbálunk rájönni:)  Végigpróbálunk néhány lefutást o Ha hibázik: javítjuk a kódot o Ha nem találunk hibát: ??  Szisztematikus megoldás kell: o „formális módszerek” 4

5 Algoritmusok helyességének ellenőrzése  Milyen jó lenne egy eszköz: o Algoritmusaink egyszerű leírására o Rendszer működésének szimulálására o Összetett követelmények megfogalmazására o Követelmények ellenőrzésére gombnyomásra  Jó hír: vannak ilyen eszközök o Modellellenőrzők (model checkers) o 30+ év kutatás eredménye o Valós ipari eredmények HW és SW rendszereknél 5

6 Modellellenőrzők 6 Modell Követelmény Modellellenőrző OK Ellenpélda

7 Modellellenőrzők 7 Modell Követelmény Modellellenőrző OK Ellenpélda  Rendszer működésének leírása  Tipikusan valami állapotgépszerű

8 Modellellenőrzők 8 Modell Követelmény Modellellenőrző OK Ellenpélda  Mit akarunk ellenőrizni o Kölcsönös kizárás o Holtpont mentesség o …  Logikai kifejezés: o Pl.: ! (A_var AND B_var)

9 Modellellenőrzők 9 Modell Követelmény Modellellenőrző OK Ellenpélda  „Fekete doboz”  Automatikus  Eredmény: o Követelmény igaz o Követelmény nem teljesül + ellenpélda

10 UPPAAL  Időzítést is támogató modellellenőrző  Uppsala & Aalborg egyetemek, 15+ éve fejlesztik  Cél: hatékonyság, könnyű használhatóság  o Akadémiai célra ingyenesen letölthető o Leírások o Részletes súgó o Esettanulmányok o Sok kiegészítés (tesztgenerálás) 10

11 DEMO  Példa modell megnyitása o OPRE-hoz kapcsolódó modellek:  Deklarációk megnézése  Szimulátor: o Modell „animálása” o Végrehajtás visszajátszása o Véletlenszerű végrehajtás Ismerkedés az UPPAAL-lal 11

12 Az UPPAAL felülete: modell szerkesztő  Globális változók  Automata o Állapot o Átmenet Őrfeltétel Akció o Órák  Rendszer: o Automata példányok 12

13 Az UPPAAL felülete: szimulátor  Átmenet kiválasztása  Változók állapota  Automaták képe  Trace: o Szöveges o Grafikus: Message Sequence Charts 13

14 Az UPPAAL felülete: ellenőrzés  Követelmény: o Logikai formula  Elemei: o Állapotra hivatkozás o NOT, AND, OR  További operátorok: o A : minden úton o E : legalább egy úton o [] : minden időben o <> : valamikor a jövőben 14

15 Vissza a Hyman algoritmushoz 15 turn=0, flag[0]=flag[1]=false; Protocol (int id) { do { flag[id] = true ; while (turn != id) { while (flag[1-id]); turn = id; } CriticalSection(id); flag[id] = false; } while (true) ; }

16 DEMO  Algoritmusokat leíró modellek vizsgálata  Szimuláció  Követelmények ellenőrzése: o Egyszerre csak egy példány lehet a kritikus szakaszban: o A[]( not (P(0).criticalSection and P(1).criticalSection) )  Ellenpélda generálása: o Options / Diagnostic Trace / Shortest Hyman és Peterson algoritmusa 16

17 Étkező filozófusok 17

18 DEMO  - Tanszéki fejlesztés, TDK díjas  Modellek: Petri háló  Sokféle analízis lehetőség Holtpont – Étkező filozófusok

19 További eszközök  Java Pathfinder Java Pathfinder o Modellellenőrző Java byte kódhoz o NASA fejlesztés, 2005 óta nyílt forrású  CHESS CHESS o.NET-es kódokhoz o Párhuzamosságból fakadó hibák keresése  jchord jchord o Java kód statikus analízise o Versenyhelyzet, holtpont detektálás  Static Driver Verifier (SDV, korábban SLAM) Static Driver Verifier o Windows eszközmeghajtók ellenőrzése  … 19

20 Összefoglalás  Feladatok együttműködésénél sok hibalehetőség  Versenyhelyzet, holtpont…  DE: léteznek eszközök a vizsgálathoz  Modellellenőrzők, tételbizonyítók, statikus ellenőrzők… 20

21 További információ  R. Hamberg and F. Vaandrager. Using Model Checkers in an Introductory Course on Operating Systems. OSR 42(6): Using Model Checkers in an Introductory Course on Operating Systems  Formális módszerek MSc tantárgy (VIMIM100) Formális módszerek  UPPAAL modellellenőrző UPPAAL  PetriDotNet modellellenőrző PetriDotNet 21


Letölteni ppt "Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Feladatok együttműködésének ellenőrzése Micskei Zoltán"

Hasonló előadás


Google Hirdetések