Cílem této diplomové práce je prozkoumat používané vývojové nástroje, které umožňují zobrazit paralelismus.
Dále bylo za cíl vytvořit multiplatformní aplikaci, schopnou vizualizovat aktivitu vláken ve vývojovém prostředí CodeLite, který tuto schopnost vizualizace doposud postrádal. Aplikace umožní zobrazovat aktivitu vláken v čase s možností náhledu, jakou činnost vlákno v daném okamžiku vykonává a to pomocí zásobníku volání. Umožní také sledovat parametry, jako jsou využití paměti, vytížení jader CPU a další statistické údaje.
V první části této práce se seznámíme se základními pojmy a principy, dále s ladícími nástroji vývojových prostředí Visual Studio a Oracle Sun Studio. Další část je věnována popisu nástrojů a knihoven, které jsme použili při vývoji vlastního analyzátoru vláken. Použili jsme volně šiřitelnou knihovnu "System information Gather And Reporter" (Sigar) a ladící nástroj "The GNU project Debugger" (GDB). Sigar nám umožnil získat systémové informace z operačního systému a GDB jsme použili k pozastavení běžícího vlákna a získání zásobníku volání tzv. "call stack". V poslední části diplomové práce je zpracována programová a uživatelská dokumentace.
Anotace v angličtině
The aim of this diploma thesis is to examine the applied developmental tools, which allow us to display parallelism.
It also intends to create a cross-platform application able to visualize the activity of threads in the CodeLite development environment which has lacked this ability so far. Through using the call stack the application will enable us to display the activity of threads at time with the possibility of a preview of which activity is being undertaken by a thread. It will also facilitate the monitoring of parameters such as memory usage, utilization of CPU cores and other statistical data.
The first part of this thesis introduces the basic concepts and principles, as well as Visual Studio and Oracle Sun Studio development environments? debugging tools. Another part is devoted to the description of the tools and libraries which we used in the development of our own thread analyzer. We used a freely distributable library "Gather System Information And Reporter" (Sigar) and a debugging tool "The GNU Project Debugger" (GDB). Sigar system allowed us to obtain system information from the operating system and GDB was used for suspension of a running thread and acquisition of the call stack. The last part of this thesis elaborates on program and user documentation.
Klíčová slova
paralelismus, CodeLite, wxWidgets, plugin, vlákna, call stack, paměť, aplikace
Cílem této diplomové práce je prozkoumat používané vývojové nástroje, které umožňují zobrazit paralelismus.
Dále bylo za cíl vytvořit multiplatformní aplikaci, schopnou vizualizovat aktivitu vláken ve vývojovém prostředí CodeLite, který tuto schopnost vizualizace doposud postrádal. Aplikace umožní zobrazovat aktivitu vláken v čase s možností náhledu, jakou činnost vlákno v daném okamžiku vykonává a to pomocí zásobníku volání. Umožní také sledovat parametry, jako jsou využití paměti, vytížení jader CPU a další statistické údaje.
V první části této práce se seznámíme se základními pojmy a principy, dále s ladícími nástroji vývojových prostředí Visual Studio a Oracle Sun Studio. Další část je věnována popisu nástrojů a knihoven, které jsme použili při vývoji vlastního analyzátoru vláken. Použili jsme volně šiřitelnou knihovnu "System information Gather And Reporter" (Sigar) a ladící nástroj "The GNU project Debugger" (GDB). Sigar nám umožnil získat systémové informace z operačního systému a GDB jsme použili k pozastavení běžícího vlákna a získání zásobníku volání tzv. "call stack". V poslední části diplomové práce je zpracována programová a uživatelská dokumentace.
Anotace v angličtině
The aim of this diploma thesis is to examine the applied developmental tools, which allow us to display parallelism.
It also intends to create a cross-platform application able to visualize the activity of threads in the CodeLite development environment which has lacked this ability so far. Through using the call stack the application will enable us to display the activity of threads at time with the possibility of a preview of which activity is being undertaken by a thread. It will also facilitate the monitoring of parameters such as memory usage, utilization of CPU cores and other statistical data.
The first part of this thesis introduces the basic concepts and principles, as well as Visual Studio and Oracle Sun Studio development environments? debugging tools. Another part is devoted to the description of the tools and libraries which we used in the development of our own thread analyzer. We used a freely distributable library "Gather System Information And Reporter" (Sigar) and a debugging tool "The GNU Project Debugger" (GDB). Sigar system allowed us to obtain system information from the operating system and GDB was used for suspension of a running thread and acquisition of the call stack. The last part of this thesis elaborates on program and user documentation.
Klíčová slova
paralelismus, CodeLite, wxWidgets, plugin, vlákna, call stack, paměť, aplikace
Vytvořte rešerši na téma vizualizace paralelismu aplikace ve vývojových prostředích.
Pomocí technologie wxWidgets, programovacího jazyka C++ a debuggeru GDB vytvořte aplikaci schopnou vizualizovat paralelismus aplikace.
Vizualizace by měly pokrývat: počet aktivních vláken v čase, statistiky vytížení jader/procesorů, využití paměti.
Vizualizační aplikaci integrujte ve formě zásuvného modulu do prostředí IDE CodeLite pod licencí GPL 2.
Vytvořte programovou a uživatelskou dokumentaci.
Zásady pro vypracování
Vytvořte rešerši na téma vizualizace paralelismu aplikace ve vývojových prostředích.
Pomocí technologie wxWidgets, programovacího jazyka C++ a debuggeru GDB vytvořte aplikaci schopnou vizualizovat paralelismus aplikace.
Vizualizace by měly pokrývat: počet aktivních vláken v čase, statistiky vytížení jader/procesorů, využití paměti.
Vizualizační aplikaci integrujte ve formě zásuvného modulu do prostředí IDE CodeLite pod licencí GPL 2.
Vytvořte programovou a uživatelskou dokumentaci.
Seznam doporučené literatury
BLIŽŇÁK, Michal. Systémové programování. 1. vyd. Zlín: UTB ve Zlíně, 2005. 202 s. ISBN 80-7318-364-1
SMART, Julian, HOCK, Kevin. Cross-Platform GUI Programming with wxWidgets, Prentice Hall, 2006, ISBN 0-13-147381-6
KANISOVÁ, H. - MÜLLER, M. UML srozumitelně. 2. akt. vyd. Brno: Computer Press, 2006. 176 s. ISBN 80-251-1083-4
PRATA, S. Mistrovství v C++: Computer Press, 2007, 3. vydání, 1120s, ISBN 978-80-251-1749-1
STALLMAN, R. M., PESCH, R., SHEBS, S. Debugging with GDB: The GNU Source Level Debugger: GNU Press, 2002, 5. vydání, ISBN 1-882114-88-4
MATLOFF, N., SALZMAN, P. J. The Art of Debugging with GDB, DDD and Eclipse, No Starch Press, San Francisco, 2008, ISBN 978-1-59327-174-9
Seznam doporučené literatury
BLIŽŇÁK, Michal. Systémové programování. 1. vyd. Zlín: UTB ve Zlíně, 2005. 202 s. ISBN 80-7318-364-1
SMART, Julian, HOCK, Kevin. Cross-Platform GUI Programming with wxWidgets, Prentice Hall, 2006, ISBN 0-13-147381-6
KANISOVÁ, H. - MÜLLER, M. UML srozumitelně. 2. akt. vyd. Brno: Computer Press, 2006. 176 s. ISBN 80-251-1083-4
PRATA, S. Mistrovství v C++: Computer Press, 2007, 3. vydání, 1120s, ISBN 978-80-251-1749-1
STALLMAN, R. M., PESCH, R., SHEBS, S. Debugging with GDB: The GNU Source Level Debugger: GNU Press, 2002, 5. vydání, ISBN 1-882114-88-4
MATLOFF, N., SALZMAN, P. J. The Art of Debugging with GDB, DDD and Eclipse, No Starch Press, San Francisco, 2008, ISBN 978-1-59327-174-9
Přílohy volně vložené
-
Přílohy vázané v práci
grafy, tabulky
Převzato z knihovny
Ne
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Student seznámil komisi s obsahem a výsledky své diplomové práce v krátké prezentaci. Po přečtení posudků vedoucího a oponenta práce následovala diskuze, ve které byly položeny následující dotazy:
dr. Stružka: Je Vaše aplikace schopna během analýzy detekovat uváznutí (deadlock), a pokud ano, jakým
způsobem je tento stav reprezentován uživateli.
Student na položené dotazy odpověděl. Následovalo zkoušení ze tří předmětů.