Abstract
We present the first shape analysis for multithreaded programs that avoids the explicit enumeration of execution-interleavings. Our approach is to automatically infer a resource invariant associated with each lock that describes the part of the heap protected by the lock. This allows us to use a sequential shape analysis on each thread. We show that resource invariants of a certain class can be characterized as least fixed points and computed via repeated applications of shape analysis only on each individual thread. Based on this approach, we have implemented a thread-modular shape analysis tool and applied it to concurrent heap-manipulating code from Windows device drivers.
Original language | English |
---|---|
Pages (from-to) | 266-277 |
Number of pages | 12 |
Journal | ACM SIGPLAN Notices |
Volume | 42 |
Issue number | 6 |
DOIs | |
State | Published - Jun 2007 |
Keywords
- Abstract interpretation
- Concurrent programming
- Shape analysis
- Static analysis