DocumentCode :
3368711
Title :
Defect detection for multithreaded programs with semaphore-based synchronization
Author :
Moiseev, Mikhail
Author_Institution :
St.-Petersburg State Polytech. Univ., St. Petersburg, Russia
fYear :
2010
fDate :
13-15 Oct. 2010
Firstpage :
64
Lastpage :
70
Abstract :
The solution to the problem of automatic defects detection in multithreaded programs is covered in this paper. General approaches for defect detection are considered. Static analysis is chosen because of its full automation and soundness properties. Overview of papers about static analysis usage for defect detection in parallel programs is presented. The approach for expansion of static analysis algorithms to multithreaded programs is suggested. This approach is based on Thread Analysis Algorithm. Thread analysis algorithm provides analysis of threads creation and thread-executed functions. This algorithm uses static analysis algorithm results in particular to identify semaphore objects. Thread analysis algorithm and static analysis algorithms are processing jointly. Thread analysis algorithm interprets thread control functions calls (create, join, etc.) and synchronization functions calls (wait, post, etc.). The algorithm determines program blocks which may execute in parallel and interaction pairs of synchronization functions calls. This information is taking into consideration to analyze threads cooperation and detect synchronization errors. To analyze threads cooperation this algorithm uses join of shared objects values in ψ-functions. Basic rules of thread analysis algorithm are considered in the paper. Application of these rules to multithreaded program example is presented. The suggested approach allows us to detect all single-threaded program defect types and some synchronization errors such as Race condition or Deadlock. This approach gives sound results. It obtains analysis of programs with any number of semaphores and threads. It is possible to analyze dynamically created threads. The approach can be extended to other classes of parallel programs and other types of synchronization objects.
Keywords :
concurrency control; multi-threading; program diagnostics; synchronisation; ψ-functions; automatic defects detection; deadlock; multithreaded programs; parallel programs; race condition; semaphore-based synchronization; static analysis algorithms; synchronization functions calls; thread analysis algorithm; thread control functions calls; thread-executed functions; Algorithm design and analysis; Automation; Electronic mail; Instruction sets; Object recognition; Synchronization; System recovery; Defect detection; multithreaded program; semaphore; static analysis;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering Conference (CEE-SECR), 2010 6th Central and Eastern European
Conference_Location :
Moscow
Print_ISBN :
978-1-4577-0605-9
Type :
conf
DOI :
10.1109/CEE-SECR.2010.5783153
Filename :
5783153
Link To Document :
بازگشت