Opercis rendszerek vimia 219 Feladatok egyttmkdsnek ellenrzse Micskei

  • Slides: 21
Download presentation
Operációs rendszerek (vimia 219) Feladatok együttműködésének ellenőrzése Micskei Zoltán http: //www. mit. bme. hu/~micskeiz

Operációs rendszerek (vimia 219) Feladatok együttműködésének ellenőrzése Micskei Zoltán http: //www. mit. bme. hu/~micskeiz Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hyman algoritmusa turn=0, flag[0]=flag[1]=false; Protocol (int id) { do { flag[id] = true ;

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; } Critical. Section(id); Lehetnek-e ketten flag[id] = false; egyszerre a kritikus szakaszban? } while (true) ; } 2

Peterson algoritmusa turn=0, flag[0]=flag[1]=false; Protocol (int pid) { while (true) { flag[pid]=true; turn=1 -pid;

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) /**/; Critical. Section(id); Lehetnek-e ketten flag[pid]=false; egyszerre a kritikus } szakaszban? } 3

Algoritmusok helyességének ellenőrzése § Hogyan döntsük el, hogy jó? § Erősen nézzük, és próbálunk

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

Algoritmusok helyességének ellenőrzése § Milyen jó lenne egy eszköz: o Algoritmusaink egyszerű leírására o

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

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

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

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

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

Modellellenőrzők § Mit akarunk ellenőrizni Modell Követelmény Modellellenőrző OK o Kölcsönös kizárás o Holtpont

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

Modellellenőrzők Modell Követelmény § Eredmény: Modellellenőrző OK § „Fekete doboz” § Automatikus o Követelmény

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

UPPAAL § § Időzítést is támogató modellellenőrző Uppsala & Aalborg egyetemek, 15+ éve fejlesztik

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 http: //www. uppaal. com/ 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

DEMO Ismerkedés az UPPAAL-lal § Példa modell megnyitása o OPRE-hoz kapcsolódó modellek: http: //www.

DEMO Ismerkedés az UPPAAL-lal § Példa modell megnyitása o OPRE-hoz kapcsolódó modellek: http: //www. mbsd. cs. ru. nl/publications/papers/fvaan/MCin. Edu / § 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 11

Az UPPAAL felülete: modell szerkesztő § Globális változók § Automata o Állapot o Átmenet

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

Az UPPAAL felülete: szimulátor § Átmenet kiválasztása § Változók állapota § Automaták képe §

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

Az UPPAAL felülete: ellenőrzés § Követelmény: o Logikai formula § Elemei: o Állapotra hivatkozás

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

Vissza a Hyman algoritmushoz turn=0, flag[0]=flag[1]=false; Protocol (int id) { do { flag[id] =

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

DEMO Hyman és Peterson algoritmusa § Algoritmusokat leíró modellek vizsgálata § Szimuláció § Követelmények

DEMO Hyman és Peterson algoritmusa § 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). critical. Section and P(1). critical. Section) ) § Ellenpélda generálása: o Options / Diagnostic Trace / Shortest 16

Étkező filozófusok 17

Étkező filozófusok 17

DEMO Holtpont – Étkező filozófusok § - Tanszéki fejlesztés, TDK díjas § Modellek: Petri

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

További eszközök § Java Pathfinder o Modellellenőrző Java byte kódhoz o NASA fejlesztés, 2005

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

Összefoglalás § Feladatok együttműködésénél sok hibalehetőség § Versenyhelyzet, holtpont… § DE: léteznek eszközök a

Ö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

További információ § R. Hamberg and F. Vaandrager. Using Model Checkers in an Introductory

További információ § R. Hamberg and F. Vaandrager. Using Model Checkers in an Introductory Course on Operating Systems. OSR 42(6): 101 -111. § Formális módszerek MSc tantárgy (VIMIM 100) § UPPAAL modellellenőrző § Petri. Dot. Net modellellenőrző 21