Chess. Joanna Iwaniuk. 9 marca 2010

Podobne dokumenty
Metody numeryczne i statystyka dla in»ynierów

1 Metody iteracyjne rozwi zywania równania f(x)=0

1 Bª dy i arytmetyka zmiennopozycyjna

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Lab. 02: Algorytm Schrage

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Analiza wydajno±ci serwera openldap

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Uczenie Wielowarstwowych Sieci Neuronów o

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Bazy danych, 4. wiczenia

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Wst p teoretyczny do wiczenia nr 3 - Elementy kombinatoryki

Programowanie Zespołowe

Architektury systemów komputerowych

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Wojewódzki Konkurs Matematyczny

Ekonometria. wiczenia 13 Metoda ±cie»ki krytycznej. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Problemy optymalizacyjne - zastosowania

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska

AUTO-ENKODER JAKO SKŠADNIK ARCHITEKTURY DEEP LEARNING

Ukªady równa«liniowych

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Teoria grafów i jej zastosowania. 1 / 126

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Listy i operacje pytania

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

Minimalne drzewa rozpinaj ce

Wojewódzki Konkurs Matematyczny

wiczenie nr 3 z przedmiotu Metody prognozowania kwiecie«2015 r. Metodyka bada«do±wiadczalnych dr hab. in». Sebastian Skoczypiec Cel wiczenia Zaªo»enia

Lekcja 12 - POMOCNICY

2 Liczby rzeczywiste - cz. 2

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Programowanie wspóªbie»ne

Bazy danych. Andrzej Łachwa, UJ, /15

Ekonometria. wiczenia 1 Regresja liniowa i MNK. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Elementy geometrii w przestrzeni R 3

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

Metody numeryczne i statystyka dla in»ynierów

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

JĘZYK ROSYJSKI POZIOM ROZSZERZONY

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Model obiektu w JavaScript

Podstawy statystycznego modelowania danych Analiza prze»ycia

LZNK. Rozkªad QR. Metoda Householdera

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Wykªad 4. Funkcje wielu zmiennych.

Dyskretyzacja i kwantyzacja obrazów

1. Wprowadzenie do C/C++

Praca Dyplomowa Magisterska

1. Rozwiązać układ równań { x 2 = 2y 1

Ekonometria - wykªad 8

Decyzja o warunkach zabudowy i decyzja środowiskowa

Programowanie wspóªbie»ne

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

Ekonometria. wiczenia 2 Werykacja modelu liniowego. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Wstp. Warto przepływu to

Interpolacja funkcjami sklejanymi

Po co planowanie? Planowanie projektu. Najcz stsz przyczyn niepowodzenia projektów jest brak czasu.

5. (8 punktów) EGZAMIN MAGISTERSKI, r Matematyka w ekonomii i ubezpieczeniach

Ekstremalnie fajne równania

przewidywania zapotrzebowania na moc elektryczn

1. Wprowadzenie do C/C++

PROBIT Wysoka Kultura w Księgowości

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

x y x y x y x + y x y

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

EGZAMIN MATURALNY 2013 J ZYK ROSYJSKI

Przekroje Dedekinda 1

Wyszukiwanie. Algorytmy i Struktury Danych. (c) Marcin Sydow. Dziel i rz d¹. Wyszukiwanie. Statystyki pozycyjne. Podsumowanie

Zarządzanie projektami. wykład 1 dr inż. Agata Klaus-Rosińska

Ukªady równa«liniowych - rozkªady typu LU i LL'

Algorytmy zrandomizowane

Zastosowania matematyki

Programowanie Obiektowe

O pewnym zadaniu olimpijskim

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

MATEMATYKA 4 INSTYTUT MEDICUS FUNKCJA KWADRATOWA. Kurs przygotowawczy na studia medyczne. Rok szkolny 2010/2011. tel

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Programowanie wspóªbie»ne

Wst p do sieci neuronowych 2010/2011 wykªad 7 Algorytm propagacji wstecznej cd.

ZP Obsługa bankowa budżetu Miasta Rzeszowa i jednostek organizacyjnych

Wektory w przestrzeni

Rozwi zania klasycznych problemów w Rendezvous

Proste modele o zªo»onej dynamice

Metody probablistyczne i statystyka stosowana

ZARZĄDZENIE Nr Or/9/Z/05

Lekcja 9 Liczby losowe, zmienne, staªe

Transkrypt:

9 marca 2010

Plan prezentacji 1. Co to jest? 2. Jak u»ywa? 3. Prezentacja dziaªania 4. kontrola przeplotów model checking odtwarzanie wadliwego wykonania 5.

Ogólna idea Wynik dziaªania Co to jest? program Microsoftu sªu» cy do testowania programów wspóªbie»nych cel: wykrywanie tzw. heisenbugs wersje dla ró»nych platform, przede wszystkim.net w zasadzie darmowy ;)

Ogólna idea Wynik dziaªania Motywacja testowanie programów wspóªbie»nych jest trudne tradycyjne podej±cie to stress testing nie mamy pewno±ci,»e zostaªy pokryte wszystkie przeploty bª dy mog pozosta niewykryte bardzo dªugo nawet je±li wykryjemy bª d to jak go odtworzy?

Ogólna idea Wynik dziaªania Postulaty jako narz dzie do wykrywania bª dów specycznych dla programów wspóªbie»nych testowanie deterministyczne pokrycie wszystkich (prawdopodobnych) przeplotów - model checking mo»liwo± odtworzenia znalezionego bª du

Ogólna idea Wynik dziaªania Wyzwania Sk d wzi model? Jak pozby si niedeterminizmu? Jak systematycznie przeszukiwa przeploty? Co zrobi z eksplozj stanów? Jak odtwarza przeplot, który prowadzi do bª du?

Ogólna idea Wynik dziaªania Co wykryje? (1) ogólnie: przypadki, kiedy test si nie powiódª ale: bynajmniej nie nale»y oczekiwa,»e b dzie to standardowy model checking zakªadamy,»e wykonanie pojedynczego w tku jest zawsze dokªadnie takie samo

Ogólna idea Wynik dziaªania Co wykryje? (2) Dla ró»nych przeplotów, ale dla jednego scenariusza: podstawowe bª dy takie jak segmentation fault (testowany program jest wykonywany) niespeªnienie warunków testu zakleszczenia»ywotno± mo»na za» da wykrywania data races

i C# potrzebna klasa Test, która dostarcza scenariusz testowy Test.Startup Test.Run - powtarzane w p tli Test.Shutdown

Prezentacja dziaªania...

Jak dziaªa - najogólniejsze spojrzenie

Przypomninenie Sk d wzi model? Jak pozby si niedeterminizmu? Jak systematycznie przeszukiwa przeploty? Co zrobi z eksplozj stanów? Jak odtwarza przeplot, który prowadzi do bª du?

happens-before

Graf happens-before tworzy abstrakcj wszystkich w tków, timerów itp. - traktuje wszystkie takie jednostki jednakowo, jako zadania program jako automat niedeterministyczny z przej±ciami mi dzy stanami powodowanymi przez zadania w zªy aktualne instrukcje wykonywane przez dany w tek kraw dzie chronologiczny porz dek mi dzy wykonanymi instrukcjami

Program automat niedeterministyczny niedeterminizm zwi zany z przeplotami inne rodzaje niedeterminizmu zmienno± danych wej±ciowych, random() itd.

vs przeszukuje kolejne ±cie»ki bez pami tania caªego grafu, poprzez powtarzanie wykonania testu potra zmusi program do przej±cia dokªadnie zadan ±cie»k przeszukiwanie przestrzeni, odtwarzanie bª dnego wykonania wniosek: potrzebne jest zapanowanie nad niedeterminizmem

1. Inne rodzaje niedeterminizmu rozwi zanie: obej±cie problemu :) dane wej±ciowe powtarzanie tego samego scenariusza losowanie, odczytywanie informacji o czasie rzeczywistym, (...) zapami tywanie i deterministyczne odtwarzanie wyniku bez ponownego wywoªywania funkcji

2. przeplotów ingerencja w system operacyjny? wirtualna maszyna? zmiana kodu ¹ródªowego testowanego programu? trudne i kosztowne... rozwi zanie: wªasny scheduler

Scheduler wyr cza system operacyjny w kontroli przeplotów to trudne: trzeba umo»liwi wszystkie oryginalnie mo»liwe przeploty, ale nie wi cej kolejki zada«aktywnych, nieaktywnych, kontrola zmiennych synchronizacyjnych, pami tanie które w tki zale» od których zmiennych... zaªo»enie: jednow tkowo±

Jak to kontrolowa? trzeba przechwyci informacje dla systemu operacyjnego podmienia funkcje woªane przez program na swoje wersje - wrappery ogólnie: rola wrapperów uchwycenie wystarczaj cego zakresu semantyki oryginalnego API,»eby umo»liwi zbudowanie abstrakcji happens-before

Wrappery np. tworzenie nowego w tku wrapper informuje o powstaniu nowego w tku i wywoªuje standardow funkcj wej±cie do sekcji krytycznej wrapper u»ywa wersji try oryginalnej funkcji, ewentualnie przenosi dany w tek do kolejki nieaktywnych potrzebna odr bna warstwa wrapperów dla ka»dej platformy (na szcz ±cie do± cienka, np. dla.net 64 wrappery, 1270 linii kodu)

Architektura

Odtwarzanie przeplotu decyzje zwi zane z przeª czaniem kontekstu s zapami tywane graf happens-before ze wszystkimi zdarzeniami synchronizacyjnymi informacje mo»na pó¹niej wykorzysta do znalezienia kolejnego przeplotu lub odtworzenia poprzedniego problem to nie s wszystkie informacje, s te» inne ¹ródªa niedeterminizmu nie przejmujemy si tym specjalnie i je±li nie mo»na odtworzy przeplotu to próbujemy powtórzy test

Bezstanowy model checking model happens-before opisany wcze±niej w pami ci nie jest przechowywany caªy graf, a jedynie ostatnia ±cie»ka sprawiedliwy model checking w roli schedulera priorytety w tków

Formalnie Oznaczenia predykatów i funkcji: enabled(t) w tek t jest aktywny yield(t) w tek t zaraz zrzeknie si procesora sched(t) ostatnio wykonana instrukcja z w tku t ES(t) abiór w tków aktywnych w danym stanie NextState(s, t) stan do którego dojdziemy ze stanu wyznaczaj c t jako kolejny w tek do wykonania P relacja priorytetu

Denicje wªasno±ci sprawiedliwo± : t TidGF enabled(t) GF sched(t) wªasno± dobrego samarytanina t TidGF sched(t) GF (sched(t) yield(t))

Idea okienek okienko mi dzy dwoma stanami ze zrzeczeniem si procesora funkcje o interpretacji w przestrzeni okienka: S(t) w tki przynajmniej raz wybrane (scheduled) E(t) w tki przez caªy czas aktywne (enabled) D(t) w tki niaktywne (disabled)

Algorytm (pseudo-pseudokod) curr := obecny stan := stan pocz tkowy loop forever T := curr.es - w tki o ni»szym priorytecie if t = then return t := wybierz w tek z T (do wykonania) next := NextState(curr, t) next.p := curr.p - priorytety faworyzuj ce t foreach u w tki aktualizuj E, D, S dla t if curr.yield(t) then inicjalizuj E, D, S dla nowego okienka next.p := next.p te które nie zostaªy wybrane w poprzednim okienku maj wy»szy priorytet ni» t curr := next

Wªasno±ci algorytmu ka»da niesko«czona ±cie»ka wygenerowana przez algorytm ma wªasno± dobry samarytanin sprawiedliwo±. je±li nie istnieje niesko«czona ±cie»ka o powy»szej wªasno±ci to algorytm ko«czy si pozwala wykry naruszenie wªasno±ci dobrego samarytanina i zakleszczenie

Liczba wszystkich przeplotów dla n w tków i k kroków w w tku

Preemption bounding ograniczenie analogiczne do ograniczenia gª boko±ci przeszukiwania w zwykªym model checkingu ograniczenie na liczb wywªaszcze«(liczba u±pie«dowolna) rozwi zanie oparte na wierze,»e bª dy s powodowane przez nieliczne wywªaszczenia, ale w odpowiednich miejscach

Cechy preemption bounding je±li liczba wywªaszcze«ograniczona do c, to rozmiar przestrzeni k c (k liczba kroków w w tku) dodatkowe heurystyki zmniejszaj ce k stopniowe zwi kszanie ograniczenia znajdziemy najmniejsze c takie, dla którego jest ¹le, a zatem najprostszy przypadek, kiedy program nie dziaªa

Wydajno± model checkingu w ró»nych wersjach

Zakres stosowalno±ci Rysunek: Charakterystyka programów testowanych z powodzeniem za pomoc

Statystyki skuteczno±ci Rysunek: Liczba bª dów znalezionych przez dla ró»nych programów

Zalety w sumie znaleziono 25 nieznanych bª dów (2007) niektóre z nich znalezione przez niezale»nych testerów znaleziono bª dy, które nie ukazaªy si przy stress testingu podobno wykryª wszystkie bª dy, które znaleziono przy stress testingu