The project has two purposes: (1) concurrency bug fixing (2) Modules enabling others to apply control theory to software analysis.
For (1), it serves the purpose claimed in our research paper: fixing deadlocks/atomicity violations/ data races. It produces the bug fixes of optimal performance quality and avoids introducing new deadlocks in the program. Under the hood, it first models multithreaded program as the formal Petri net, models the bugs as vectors, and reduces the bug fixing to vector separating problem or separating hyperplane problem. The employed mixed integer programming and the supervision based place invariants guarantee the minimal locks and maximal permissiveness of concurrency.
For the purpose (2), the project contains many APIs for others to use, which may enable other control-based software analysis.
Control-based bug fixing framework
A unified framework for concurrency bug fixing
Brought to you by:
lpxz
Downloads:
0 This Week