Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Feladatok együttműködésének ellenőrzése Micskei Zoltán http://www.mit.bme.hu/~micskeiz Operációs rendszerek (vimia219)
Jan 16, 2016
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)
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?
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?
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”
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
6
Modellellenőrzők
Modell Követelmény
Modellellenőrző
OK Ellenpélda
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ű
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)
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
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)
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
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
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
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
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) ;
}
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
Étkező filozófusok
17
DEMO
- Tanszéki fejlesztés, TDK díjas Modellek: Petri háló Sokféle analízis lehetőség
Holtpont – Étkező filozófusok
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
Ö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 Course on Operating Systems. OSR 42(6):101-111.
Formális módszerek MSc tantárgy (VIMIM100)
UPPAAL modellellenőrző
PetriDotNet modellellenőrző
21