Feladatok együttműködésének ellenőrzése

Slides:



Advertisements
Hasonló előadás
Keresőrendszerek.
Advertisements

T ESZTELÉS. C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 5.5. Model Based Architecture módszerek BelAmI_H Spring.
Hatékonyságvizsgálat, dokumentálás
Diagnosztika szabályok felhasználásával, diagnosztikai következtetés Modell alapú diagnosztika diszkrét módszerekkel.
TECHNIKA ÉS ÉLETVITEL 5. évfolyam
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
LINQ to DataSet Kereskényi Róbert
Online Katalógus aleph.nyf.hu.
A webes tesztelés jövője
3. előadás (2005. március 1.) Utasítások, tömbök
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Az igazolás Igazolás (verification) Igazolás (verification) Próbapad (vizsgálati összeállítás) Próbapad (vizsgálati összeállítás) Órajel előállítás Órajel.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Alkalmazás és megjelenítés virtualizáció Micskei Zoltán.
Turbo Pascal Változók.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Virtuális méréstechnika
Kincses Zoltán, Mingesz Róbert, Vadai Gergely
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
PHP Webprogramozás alapjai
Célkeresztben az érettségi! A legjobb és leghatékonyabb eszközt akarjuk Kevesebb hibalehetőség, barátságos hibaüzenetek Kiváló fejlesztőeszköz Gyorsan.
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
Kliensoldali Programozás
Nem determinisztikusság és párhuzamosság. A nem determinisztikusság a párhuzamosságban gyökeredzik. Példa: S par  parbegin x:=0   x:=1   x:=2 parend;
Szombathely Dinamikus WEB programozás: PHP és JSP.
Lénárt Anett egyetemi adjunktus - PTE PMMK Rendszer- és Szoftvertechnológia Tanszék Előadás JavaScript Tananyag: W eb - programozás.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Budapesti Műszaki Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 Szolgáltatásbiztos számítástechnika = hibatűrés, információbiztonság Pataricza.
A hiba-előjel alapú FxLMS algoritmus analízise Orosz György Konzulensek: Péceli Gábor, Sujbert László Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék R „Big Data” elemzési módszerek Kocsis Imre
IB413. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Modellalapú tervezés és kódgenerálás szakkör Bevezető.
Összetett adattípusok a Pascal nyelvben
Programtesztelés. Hibák keletkezésének okai nem egyértelmű vagy hiányos kommunikáció fejlesztés közben maga a szoftver bonyolultsága programozói (kódolási)
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Meglévő ASP.NET 2.0 alkalmazás kiegészítése AJAX-szal
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke IC layout tervek tesztelése.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke IC layout tervek tesztelése.
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke 2. zárthelyi megoldásai december 2.
Flash és PHP? De még mennyire! Kiss-Tóth Marcell
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Two countries, one goal, joint success!
Petri-hálón alapuló modellek analízise és alkalmazásai a reakciókinetikában Papp Dávid június 22. Konzulensek: Varró-Gyapay Szilvia, Dr. Tóth János.
Valós idejű adaptív útvonalkeresés
1 Matematika oktatás mérnök és műszaki informatikai képzésekben Ráckeve, március 2-4. Recski András, BME Számítástud. és Inf.elm. T. Budapesti Műszaki.
Termelő-fogysztó modell. A probléma absztrakt megfogalmazása: informális leírás. Adott egy N elemű közösen használt tároló, N  1. Adott a folyamatoknak.
Hibaterjedés-analízis
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Szondázás alapú diagnosztika 1. Autonóm és hibatűrő információs.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Alkalmazás és megjelenítés virtualizáció Micskei Zoltán.
GeoGebra A matematikai szabadszoftver tanuláshoz és tanításhoz
Budapest University of Technology and Economics Department of Measurement and Information Systems Monitor komponensek fejlesztése okostelefon platformra.
Kiválóság és verseny a felsőoktatásban. Globális folyamatok Prof. Dr. Hrubos Ildikó Budapesti Corvinus Egyetem „Fókuszban a tudományos műhelymunka” – harmadik.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Szondázás alapú diagnosztika 2. Autonóm és hibatűrő információs.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Nyomkövetés alapú hibadetektálás Autonóm és Hibatűrő Inf.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Megerősítő elemzés „Big Data” elemzési módszerek Salánki.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Korlátkielégítési problémák Autonóm és hibatűrő információs.
Menetrend optimalizálása genetikus algoritmussal
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék R3-COP és R5-COP projekt: Környezetfüggő viselkedés tesztelése.
Adva S  parbegin S 1 ...  S n parend; Párhuzamos programszerkezet két vagy több olyan folyamatot tartalmaz, amelyek egymással közös változó segítségével.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék R „Big Data” elemzési módszerek Kocsis Imre
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Kommunikáció és szinkronizáció. 1.) Kommunikáció: Lehetőség arra, hogy egyik folyamat befolyásolja a másik folyamat lefutását. Kommunikáció eszközei: közös.
Szöveg beírásához kattintson ide A SCRATCH környezet bemutatása szakköri tapasztalatok alapján Gödöny Péter Budapesti Műszaki Szakképzési Centrum Pataky.
A modell-ellenőrzés gyakorlata UPPAAL Uppsalai Egyetem + Aalborgi Egyetem közös fejlesztése; első verzió megjelenése; részei: - grafikus modellt.
Gépészeti informatika (BMEGEMIBXGI)
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Mesterséges intelligencia
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás másolata:

Feladatok együttműködésének ellenőrzése Operációs rendszerek (vimia219) Feladatok együttműködésének ellenőrzése Micskei Zoltán http://www.mit.bme.hu/~micskeiz Utolsó módosítás: 2012. 03. 20. Az előadás a R. Hamberg and F. Vaandrager. Using Model Checkers in an Introductory Course on Operating Systems. OSR 42(6):101-111. cikkben közzétett modelleket használja fel. (URL: http://www.mbsd.cs.ru.nl/publications/papers/fvaan/MCinEdu/)

Lehetnek-e ketten egyszerre a kritikus szakaszban? 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) ; Harris Hyman, Comments on a problem in concurrent programming control, Communications of the ACM, v.9 n.1, p.45, Jan. 1966 Lehetnek-e ketten egyszerre a kritikus szakaszban?

Lehetnek-e ketten egyszerre a kritikus szakaszban? 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; } G.Peterson. Myths about the mutual exclusion problem. Inf. Process. Lett., 12(3):115–116, 1981. Lehetnek-e ketten egyszerre a kritikus szakaszban?

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 Ha hibázik: javítjuk a kódot Ha nem találunk hibát: ?? Szisztematikus megoldás kell: „formális módszerek”

Algoritmusok helyességének ellenőrzése Milyen jó lenne egy eszköz: Algoritmusaink egyszerű leírására Rendszer működésének szimulálására Összetett követelmények megfogalmazására Követelmények ellenőrzésére gombnyomásra Jó hír: vannak ilyen eszközök Modellellenőrzők (model checkers) 30+ év kutatás eredménye Valós ipari eredmények HW és SW rendszereknél ACM Turing Award Honors Founders of Automatic Verification Technology http://www.acm.org/press-room/news-releases-2008/turing-award-07/

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

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

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

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

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/ Akadémiai célra ingyenesen letölthető Leírások Részletes súgó Esettanulmányok Sok kiegészítés (tesztgenerálás)

Ismerkedés az UPPAAL-lal Példa modell megnyitása OPRE-hoz kapcsolódó modellek: http://www.mbsd.cs.ru.nl/publications/papers/fvaan/MCinEdu/ Deklarációk megnézése Szimulátor: Modell „animálása” Végrehajtás visszajátszása Véletlenszerű végrehajtás Nézzük meg valamelyiket a kölcsönös kizárás (mutual exclusion) példák közül. Miért lesz nekünk jó ez: Le tudjuk írni az algoritmusunkat, a grafikus forma talán elsőre könnyebben érthető. A szimulációnál könnyen végig tudjuk próbálni, hogy tényleg úgy működik-e, ahogyan képzeltük. Meg tudjuk jeleníteni a futást, azt el is tudjuk menteni. Később például egy problémás esetet egyszerűen meg tudunk másnak is mutatni. Véletlenszerű végrehajtással előállhat könnyen olyan eset, amire nem is gondoltunk. …

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

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

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

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; } CriticalSection(id); flag[id] = false; } while (true) ;

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

Étkező filozófusok Filozófusok ülnek az asztal körül, és az evéshez a bal és jobb oldalon lévő pálcika felvételére is szükség van.

Holtpont – Étkező filozófusok - Tanszéki fejlesztés, TDK díjas Modellek: Petri háló Sokféle analízis lehetőség PetriDotNet: http://petridotnet.inf.mit.bme.hu/

További eszközök Java Pathfinder CHESS jchord Modellellenőrző Java byte kódhoz NASA fejlesztés, 2005 óta nyílt forrású CHESS .NET-es kódokhoz Párhuzamosságból fakadó hibák keresése jchord Java kód statikus analízise Versenyhelyzet, holtpont detektálás Static Driver Verifier (SDV, korábban SLAM) Windows eszközmeghajtók ellenőrzése … Java Pathfinder, http://babelfish.arc.nasa.gov/trac/jpf/wiki CHESS, http://research.microsoft.com/en-us/projects/chess/ jchord, http://code.google.com/p/jchord/ SDV-ről egy összefoglaló és példák a használatára (egy korábbi opre fakultatív feladat) Ferencz Endre. Static Driver Verifier, 2010., http://mit.bme.hu/~micskeiz/opre/files/opre-sdv.pdf

Ö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…

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ő Formális módszerek, http://www.inf.mit.bme.hu/edu/courses/form UPPAAL, http://www.uppaal.com/ PetriDotNet, http://petridotnet.inf.mit.bme.hu/