Thesis Details
Support of Run-time Monitoring of Processes in ANaConDA Framework
This work extends ANaConDA framework for dynamic analysis of multi-threaded programs with support for multi-process monitoring. This thesis summarizes ANaConDA's approach to analysis and differences between threads and processes. The most important ones involve inter-process communication, separate logical address spaces, and synchronisation with general semaphores. The implemented extension provides API for inter-process communication via shared memory, monitors operations with shared memory in order to translate virtual addresses to their unique representation among processes, and monitors synchronisation operations with semaphores and provides information about them to analysers. The extension significantly simplifies the development of multi-process analysers. This is shown on implementation of two analysers for data race detection, AtomRace and FastTrack, which were, until now, available for multi-threaded programs only. The implementation of FastTrack algorithm uses happens-before relation for general semaphores which is also defined in this thesis. Proposed and implemented solutions were verified on a set of automatic tests and the two analysers were used for experiments on a set of students' projects. Experiments showed that ANaConDA framework is now able to detect concurrency-related errors in multi-process programs and, as such, provide support with implementation of large category of parallel programs.
multi-process analysis, dynamic analysis, ANaConDA, synchronisation, happens-before relation, vector clocks, general semaphores, shared memory, virtual address, concurrency-related errors, data race, AtomRace, FastTrack
Burget Lukáš, doc. Ing., Ph.D. (DCGM FIT BUT), člen
Hradiš Michal, Ing., Ph.D. (DCGM FIT BUT), člen
Hrubý Martin, Ing., Ph.D. (DITS FIT BUT), člen
Kočí Radek, Ing., Ph.D. (DITS FIT BUT), člen
Rozman Jaroslav, Ing., Ph.D. (DITS FIT BUT), člen
@mastersthesis{FITMT22473, author = "Monika Mu\v{z}ikovsk\'{a}", type = "Master's thesis", title = "Support of Run-time Monitoring of Processes in ANaConDA Framework", school = "Brno University of Technology, Faculty of Information Technology", year = 2020, location = "Brno, CZ", language = "english", url = "https://www.fit.vut.cz/study/thesis/22473/" }