Metoda wykrywania konfliktów zasobowych w aplikacjach wielowątkowych

Podobne dokumenty
Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO

Tytuł pracy. Praca dyplomowa inżynierska. Filip Piechocki. Tytuł Imię i Nazwisko

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/16 t

Code slicing: Droga do lepszego rozumienia kodu źródłowego (część druga)

System kontroli wersji SVN

Zagadnienia programowania obiektowego

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Program Google AdSense w Smaker.pl

Programowanie Zespołowe

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

PROJEKTY UCHWAŁ na WALNE ZGROMADZENIE AKCJONARIUSZY SPÓŁKI Danks Europejskie Centrum Doradztwa Podatkowego S.A. na dzień 30 marzec 2012 r., godz.12.

Harmonogramowanie projektów Zarządzanie czasem

PERSON Kraków

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

Instrumenty wirtualne z LabVIEW. Akademia Górniczo - Hutnicza im.stanisława Staszica w Krakowie, Wydział Inżynierii Materiałowej i Ceramiki

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

InsERT GT Własne COM 1.0

Piotr Błędowski Instytut Gospodarstwa Społecznego Szkoła Główna Handlowa. Warszawa, r.

Tworzenie modelu obiektowego

Trwałość projektu co zrobić, żeby nie stracić dotacji?

PRAKTYKA ZAWODOWA. TECHNIK INFORMATYK 312 [01]/T, SP/MENiS/ Stara podstawa programowa. TRWANIA PRAKTYKI 4 TYGODNIE x 5 dni = 20 dni

WEBML I UML JAKO NARZĘDZIA PROJEKTOWANIA APLIKACJI INTERNETOWYCH

Strukturalne metodyki projektowania systemûw informatycznych

Zarządzanie Zasobami by CTI. Instrukcja

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

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

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

CitiDirect Online Banking. Powiadomienia

Uniwersalna architektura dla Laboratorium Wirtualnego. Grant badawczy KBN

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

Procedura nadawania uprawnień do potwierdzania Profili Zaufanych w Urzędzie Gminy w Ryjewie

Raport z przeprowadzenia ankiety dotyczącej oceny pracy dziekanatu POLITECHNIKA CZĘSTOCHOWSKA. WYDZIAŁ INŻYNIERII MECHANICZNEJ i INFORMATYKI

Kalkulator Kalorii by CTI. Instrukcja

CitiDirect EB - Mobile

Uniwersytet Rzeszowski

Promocja i identyfikacja wizualna projektów współfinansowanych ze środków Europejskiego Funduszu Społecznego

Język SQL : przyjazny podręcznik / Larry Rockoff. Wyd. 2. Gliwice, cop Spis treści

forma zal. po semestrze 1 semestr 2 semestr 3 semestr 4 semestr

Zaproszenie do projektu. Warszawa Lokalnie

Edycja geometrii w Solid Edge ST

Siemens IO-Link. Smart TIA integration of sensors and actuators

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Niniejszy ebook jest własnością prywatną.

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

WSTĘP DO PROGRAMOWANIA

Analiza systemowa. Andrzej Łachwa Bazy danych 12+/15

SYLABUS/ OPIS PRZEDMIOTU

Nowe zasady organizacji siłowni zewnętrznych. Dominik Berliński

Projektowanie systemów informacyjnych: język UML

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Opis modułu analitycznego do śledzenia rotacji towaru oraz planowania dostaw dla programu WF-Mag dla Windows.

enova Workflow Obieg faktury kosztowej

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

DZIENNICZEK PRAKTYKI ZAWODOWEJ

Ćwiczenie nr 7. Instalacja siłowa gniazd trójfazowych natynkowa kabelkowa.

W przypadku kandydatów do klasy o ukierunkowaniu politechnicznym brane będą pod uwagę oceny z następujących przedmiotów: a) matematyka b) fizyka

Ćwiczenie nr 2 Zbiory rozmyte logika rozmyta Rozmywanie, wnioskowanie, baza reguł, wyostrzanie

Rok akademicki: 2015/2016 Kod: RBM s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

INFORMATYKA studia licencjackie*

PLAN PRACY ZESPOŁU NAUCZYCIELI JĘZYKÓW OBCYCH DLA SZKOŁY PODSTAWOWEJ I GIMNAZJUM W ROKU SZKOLNYM 2015/2016

Wskazówki dotyczące przygotowania danych do wydruku suplementu

Szkolenie wstępne InstruktaŜ stanowiskowy ELEKTRYK. opracowanie: Henryk Batarowski pod red. Bogdana Rączkowskiego

ZAPYTANIE OFERTOWE z dnia r

PROGMEDICA System Zarządzania zgodnością w Szpitalu WOLTERS KLUWER DLA SZPITALI

Geomagic Design X jest najbardziej wszechstronnym oprogramowaniem, które umożliwia:

Wyzwania bezpieczeństwa nowoczesnych platform nauczania zdalnego

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

Procedura nadawania uprawnień do potwierdzania, przedłuŝania waŝności i uniewaŝniania profili zaufanych epuap. Załącznik nr 1

Długoterminowa archiwizacja zasobów cyfrowych w świadomości pracowników polskich bibliotek

Spis treści. 1. Znak Konstrukcja symbolu Budowa znaku Kolorystyka wersja podstawowa Kolorystyka wersja czarno-biała...

Data wydruku: Dla rocznika: 2015/2016. Opis przedmiotu

SYLABUS. Studia Kierunek studiów Poziom kształcenia Forma studiów Politologia Studia I stopnia Studia stacjonarne

API transakcyjne BitMarket.pl

Projekt edukacyjny z informatyki

Organizacja imprez turystycznych i rekreacyjnych

PROGRAM STYPENDIALNY GMINY DOBRZYCA

Zakres pracy Przedstawienie wiedzy teoretycznej z zakresu konstrukcji reflektorów samochodowych Przegląd konstrukcji reflektorów oraz opis rozwoju ośw

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

ClearQuest. produkt. Functional TesterPlus. Functional Manual Tester, Tester Robot

INFORMATOR TECHNICZNY WONDERWARE

Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?

ZAPYTANIE OFERTOWE. MERAWEX Sp. z o.o Gliwice ul. Toruńska 8. ROZWÓJ PRZEDSIĘBIORSTWA MERAWEX Sp. z o.o. POPRZEZ EKSPORT.

Nazwa kierunku Gospodarka przestrzenna

Oprac. wrzesień 2015

Twierdzenie Bayesa. Indukowane Reguły Decyzyjne Jakub Kuliński Nr albumu: 53623

Stacjonarne Wszystkie Katedra Inżynierii Produkcji dr Sławomir Luściński. Kierunkowy Nieobowiązkowy Polski Semestr trzeci. Semestr zimowy Brak Tak

WYDZIAŁ MECHANICZNY Katedra Technologii Maszyn i Automatyzacji Produkcji. Laboratorium Obróbki ubytkowej materiałów.

ZAŁĄCZNIK NR 1. Zakres wiedzy i umiejętności oraz wykaz proponowanej bibliografii

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Iwona Sójkowska. Dobre praktyki BPŁ w zakresie kreowania wizerunku i budowania dobrych relacji

WARUNKI I TRYB REKRUTACJI KANDYDATÓW ORAZ FORMY STUDIÓW DOKTORANCKICH NA POLITECHNICE ŚLĄSKIEJ W ROKU AKADEMICKIM 2016/2017

ZESPÓŁ SZKÓŁ EKONOMICZNYCH I TECHNICZNYCH W SŁUPSKU STASZICE REGULAMIN PRZYZNAWANIA NAGRÓD

forma studiów: studia stacjonarne Liczba godzin/tydzień: 1W, 2L PRZEWODNIK PO PRZEDMIOCIE

WYMIARP RAKTYKI: 60 godzin ( 3 tygodnie ).

Transkrypt:

mgr inż. Damian Giebas Metoda wykrywania konfliktów zasobowych w aplikacjach wielowątkowych Opiekun naukowy: prof. dr hab. inż. Grzegorz Bocewicz

Agenda Motywacja Stosowane modele, wykrywanie, zapobieganie i naprawa konfliktów zasobowych Przedstawienie problemu i omówienie metody Podsumowanie 2/23

Motywacja Powszechność aplikacji wielowątkowych. Użytkownik aplikacji wielowątkowej może doświadczyć: niepoprawnego działania aplikacji zawieszania pracy aplikacji nieoczekiwanego zakończenia pracy aplikacji 3/23

Motywacja Aplikacje, w których może dojść do konfliktów zasobowych tworzone są m. in. za pomocą języków: Lp. Język programowania Popularność na świecie 1. Java 14,880% 2. C 13,305% 3. Python 8,262% 4, C++ 8,126% 5. Visual Basic.NET 6,429% 6. C# 3,267%......... 35. Rust 0,310% Lista stworzona w oparciu o ranking TIOBE z dnia 16 Marca 2019. 4/23

Zasoby i Konflikt zasobowy Krok 1 Krok 1 Krok 2 Krok Krok 32 Krok 43 Krok 5 Krok 4 Krok 6 Wątek 1 Wątek 2 Zasób Odczyt Wątek 1 Wątek 2 Zasób 0 Pamięć: 0 Odczyt Modyfikacja 0 Pamięć: 0 0 Pamięć: 1 Modyfikacja Zapis Odczyt 0 Pamięć: Pamięć: 11 Pamięć: 0 1 Zapis Pamięć: 1 Modyfikacja Odczyt Pamięć: 11 Modyfikacja Pamięć: Zapis2 Pamięć: 1 Zapis Pamięć: 2 1 1 1 2 5/23

Blokady i zmienne warunkowe Blokady (ang. mutex) mechanizm synchronizacji gwarantujący wzajemne wykluczanie się Zmienne warunkowe (ang. condition variable) mechanizm komunikacji między wątkami. Zmienne warunkowe zawsze wykorzystują blokady. 6/23

Skutki konfliktów zasobowych Szkodliwa rywalizacja (ang. race condition) 171 prac naukowych Zakleszczenie (ang. deadlock) 1409 prac naukowych Naruszenie niepodzielności (ang. atomicity violation) 18 prac naukowych Naruszenie porządku (ang. order violation) 25 prac naukowych Stan prac pochodzi z bazy Scopus z dnia 23 marca 2019 roku i ogranicza się do dziedzin Informatyki i Inżynierii. 7/23

Motywacja Konflikty zasobowe mogą występują między innymi: w naturze w systemach komunikacji w elektronice w systemach rozproszonych Przykład zakleszczenia w naturze. Źródło: http://www.bweinh.com Zakleszczenie w komunikacji. Źródło: http://www.wikiwand.com 8/23

Modele matematyczne Graf Przepływu Sterowania Sieci Petriego Systemy Współbieżnych Procesów D. Giebas, R. Wojszczyk, Graphical representations of multithreaded applications, Applied Computer Science, 14(2), Politechnika Lubelska, strony 20-37, Lublin 2018 9/23

Wykrywanie konfliktów zasobowych Narzędzia wspomagające wykrywanie: RacerX Relay Ctrigger Eraser ThreadSanitizer Helgrind Testy obciążeniowe Inspekcja kodu (ang. code review) 10/23

Zapobieganie konfliktom i ich naprawa Frameworki i rozszerzenia: Charm++ Intel Threading Building Blocks OpenMP Cilk Narzędzie usuwające wielowątkowość: Grace Narzędzia usuwające wybrane konflikty: Axis AFix 11/23

Problem Dane: Kod aplikacji napisany w języku C Biblioteka pthread Ograniczenia: Składnia i semantyka języka C Programowanie strukturalne Minimum dwa wątki w aplikacji Konflikty powodujące zjawiska: Pytania: Czy w aplikacji występują konflikty zasobowe? Gdzie znajdują się konflikty zasobowe w kodzie aplikacji? Szkodliwa rywalizacja Zakleszczenie Naruszenie niepodzielności Naruszenie porządku 12/23

Wizualizacja metody Aplikacja zawiera konflikty zasobowe Kod źródłowy Metoda Aplikacja nie zawiera konfliktów zasobowych 13/23

Metoda Etap I Transformacja kodu źródłowego Etap II Wykrywanie konfliktów zasobowych powodujących: szkodliwą rywalizację zakleszczenia naruszenie niepodzielności naruszenie porządku Etap III Wygenerowanie raportu 14/23

Model aplikacji wielowątkowej C P = (T P, U P, R P, O P, S P, M P, F P ) Gdzie: P indeks aplikacji T P zbiór wątków U P sekwencja zbiorów przedziałów czasu R P zbiór zasobów współdzielonych O P zbiór wszystkich operacji S P zbiór operacji chronionych blokadą M P sekwencja blokad F P zbiór krawędzi obejmujący: krawędzie przejścia krawędzie użycia krawędzie zależności 15/23

Reprezentacja aplikacji za pomocą modelu 16/23

Teza Metoda statycznej analizy kodu aplikacji pozwala na wykrywanie konfliktów zasobowych w aplikacjach wielowątkowych. 17/23

Aktualne osiągnięcia D. Giebas, R. Wojszczyk, Multithreaded Application Model, 19 międzynarodowa konferencja Distributed Computing and Artificial Intelligence, praca zaakceptowana Opracowanie modelu Twierdzenie o szkodliwej rywalizacji 18/23

Plan dalszych prac Twierdzenie o zakleszczeniu Twierdzenie o naruszeniu niepodzielności Twierdzenie o naruszeniu porządku Formalizacja transformacji kod model Weryfikacja metody w praktyce 19/23

Spis treści Wstęp Modele i metody identyfikacji konfliktów zasobowych Model aplikacji wielowątkowej Konflikty zasobowe Metoda wykrywania konfliktów zasobowych Weryfikacja metody Zakończenie 20/23

Publikacje D. Giebas, R. Wojszczyk, Graphical representations of multithreaded applications, Applied Computer Science, 14(2), Politechnika Lubelska, strony 20-37, Lublin 2018 D. Giebas, R. Wojszczyk, Zastosowanie wybranych reprezentacji graficznych do analizy aplikacji wielowątkowych, Zeszyty Naukowe Wydziału Elektroniki i Informatyki, Wydawnictwo Uczelniane Politechniki Koszalińskiej, strony 5-25, Koszalin 2018 D. Giebas, R. Wojszczyk, Multithreaded Application Model, 19 międzynarodowa konferencja Distributed Computing and Artificial Intelligence, praca zaakceptowana 21/23

Podsumowanie - Dalszy kierunek badań Transformacja odwrotna i automatyczne naprawianie kodu Zastosowanie modelu z innymi bibliotekami niż pthread Przystosowanie modelu do paradygmatu programowania obiektowego 22/23

mgr inż. Damian Giebas Dziękuję za uwagę. 23/23