feladatok együttműködésének ellenőrzése
DESCRIPTION
Operációs rendszerek (vimia219). Feladatok együttműködésének ellenőrzése. Micskei Zoltán http://www.mit.bme.hu/~micskeiz. Hyman algoritmusa. Lehetnek-e ketten egyszerre a kritikus szakaszban?. turn =0, flag [ 0 ]= flag [1]= false ; Protocol (int id ) { do { flag [ id ] = true ; - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/1.jpg)
Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék
Feladatok együttműködésének ellenőrzése
Micskei Zoltánhttp://www.mit.bme.hu/~micskeiz
Operációs rendszerek (vimia219)
![Page 2: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/2.jpg)
2
Hyman algoritmusaturn=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) ; }
Lehetnek-e ketten egyszerre a kritikus
szakaszban?
![Page 3: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/3.jpg)
3
Peterson algoritmusaturn=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;
}}
Lehetnek-e ketten egyszerre a kritikus
szakaszban?
![Page 4: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/4.jpg)
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ásto Ha hibázik: javítjuk a kódoto Ha nem találunk hibát: ??
Szisztematikus megoldás kell:o „formális módszerek”
![Page 5: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/5.jpg)
5
Algoritmusok helyességének ellenőrzése Milyen jó lenne egy eszköz:
o Algoritmusaink egyszerű leírásárao Rendszer működésének szimulálásárao Összetett követelmények megfogalmazásárao Követelmények ellenőrzésére gombnyomásra
Jó hír: vannak ilyen eszközökoModellellenőrzők (model checkers)o 30+ év kutatás eredményeo Valós ipari eredmények HW és SW rendszereknél
![Page 6: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/6.jpg)
6
Modellellenőrzők
Modell Követelmény
Modellellenőrző
OK Ellenpélda
![Page 7: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/7.jpg)
7
Modellellenőrzők
Modell Követelmény
Modellellenőrző
OK Ellenpélda
Rendszer működésének leírása
Tipikusan valami állapotgépszerű
![Page 8: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/8.jpg)
8
Modellellenőrzők
Modell Követelmény
Modellellenőrző
OK Ellenpélda
Mit akarunk ellenőriznio Kölcsönös kizáráso Holtpont
mentességo…
Logikai kifejezés:o Pl.: ! (A_var AND B_var)
![Page 9: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/9.jpg)
9
Modellellenőrzők
Modell Követelmény
Modellellenőrző
OK Ellenpélda
„Fekete doboz” Automatikus
Eredmény:o Követelmény igazo Követelmény nem
teljesül + ellenpélda
![Page 10: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/10.jpg)
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 http://www.uppaal.com/
o Akadémiai célra ingyenesen letölthetőo Leírásoko Részletes súgóo Esettanulmányoko Sok kiegészítés (tesztgenerálás)
![Page 11: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/11.jpg)
DEMO
Példa modell megnyitásao OPRE-hoz kapcsolódó modellek:
http://www.mbsd.cs.ru.nl/publications/papers/fvaan/MCinEdu/
Deklarációk megnézése Szimulátor:
oModell „animálása”o Végrehajtás visszajátszásao Véletlenszerű végrehajtás
Ismerkedés az UPPAAL-lal
11
![Page 12: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/12.jpg)
12
Az UPPAAL felülete: modell szerkesztő Globális változók Automata
o Állapoto Átmenet• Őrfeltétel• Akció
o Órák Rendszer:
o Automata példányok
![Page 13: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/13.jpg)
13
Az UPPAAL felülete: szimulátor
Átmenet kiválasztása
Változók állapota Automaták képe Trace:
o Szövegeso Grafikus: Message
Sequence Charts
![Page 14: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/14.jpg)
14
Az UPPAAL felülete: ellenőrzés Követelmény:
o Logikai formula Elemei:
o Állapotra hivatkozáso NOT, AND, OR
További operátorok:o A: minden útono E: legalább egy útono []: minden időbeno <>: valamikor a
jövőben
![Page 15: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/15.jpg)
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) ;
}
![Page 16: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/16.jpg)
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
![Page 17: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/17.jpg)
Étkező filozófusok
17
![Page 18: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/18.jpg)
DEMO
- Tanszéki fejlesztés, TDK díjas Modellek: Petri háló Sokféle analízis lehetőség
Holtpont – Étkező filozófusok
![Page 19: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/19.jpg)
További eszközök Java Pathfinder
o Modellellenőrző Java byte kódhozo NASA fejlesztés, 2005 óta nyílt forrású
CHESSo .NET-es kódokhozo Párhuzamosságból fakadó hibák keresése
jchordo Java kód statikus analíziseo Versenyhelyzet, holtpont detektálás
Static Driver Verifier (SDV, korábban SLAM)o Windows eszközmeghajtók ellenőrzése
…19
![Page 20: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/20.jpg)
Ö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
![Page 21: Feladatok együttműködésének ellenőrzése](https://reader036.vdocuments.net/reader036/viewer/2022062518/56814bf4550346895db8e5c7/html5/thumbnails/21.jpg)
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 (VIMIM100)
UPPAAL modellellenőrző
PetriDotNet modellellenőrző
21