Abstract
We provide a new characterization of scheduling nondeterminism by allowing deterministic schedulers to delay their next-scheduled task. In limiting the delays an otherwise-deterministic scheduler is allowed, we discover concurrency bugs efficiently---by exploring few schedules---and robustly---i.e., independent of the number of tasks, context switches, or buffered events. Our characterization elegantly applies to any systematic exploration (e.g., testing, model checking) of concurrent programs with dynamic task-creation. Additionally, we show that certain delaying schedulers admit efficient reductions from concurrent to sequential program analysis.
Supplemental Material
- M. Abadi and L. Lamport. The existence of refinement mappings. Theor. Comput. Sci., 82 (2): 253--284, 1991. Google Scholar
Digital Library
- M. F. Atig, A. Bouajjani, and S. Qadeer. Context-bounded analysis for concurrent programs with dynamic creation of threads. In TACAS '09: Proc. 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, volume 5505 of LNCS, pages 107--123. Springer, 2009. Google Scholar
Digital Library
- T. Ball, S. Burckhardt, K. E. Coons, M. Musuvathi, and S. Qadeer. Preemption sealing for efficient concurrency testing. In TACAS '10: Proc. 16th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, volume 6015 of LNCS, pages 420--434. Springer, 2010. Google Scholar
Digital Library
- M. Barnett and K. R. M. Leino. Weakest-precondition of unstructured programs. In PASTE '05: Proc. ACM SIGPLAN-SIGSOFT Workshop on Program Analysis For Software Tools and Engineering, pages 82--87. ACM, 2005. Google Scholar
Digital Library
- A. Bouajjani and R. Majumdar. Personal communication, July 2010.Google Scholar
- S. Burckhardt and M. Musuvathi. Personal communication, November 2010.Google Scholar
- S. Burckhardt, P. Kothari, M. Musuvathi, and S. Nagarakatte. A randomized scheduler with probabilistic guarantees of finding bugs. In ASPLOS '10: Proc. 15th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 167--178. ACM, 2010. Google Scholar
Digital Library
- E. M. Clarke and E. A. Emerson. Design and synthesis of synchronization skeletons using branching-time temporal logic. In Logic of Programs, volume 131 of LNCS, pages 52--71. Springer, 1981. Google Scholar
Digital Library
- J. Corbet, A. Rubini, and G. Kroah-Hartman. Linux Device Drivers. O'Reilly Media, Inc., 3rd edition, 2005. Google Scholar
Digital Library
- L. M. de Moura and N. Bjørner. Z3: An efficient SMT solver. In TACAS '08: Proc. 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, volume 4963 of LNCS, pages 337--340. Springer, 2008. Google Scholar
Digital Library
- R. DeLine and K. R. M. Leino. BoogiePL: A typed procedural language for checking object-oriented programs. Technical Report MSR-TR-2005-70, Microsoft Research, 2005.Google Scholar
- O. Edelstein, E. Farchi, E. Goldin, Y. Nir, G. Ratsaby, and S. Ur. Framework for testing multi-threaded Java programs. Concurrency and Computation: Practice and Experience, 15 (3--5): 485--499, 2003.Google Scholar
Cross Ref
- M. Emmi, S. Qadeer, and Z. Rakamarić. Delay-bounded scheduling: A canonical characterization of scheduler nondeterminism. Technical Report MSR-TR-2010-123, Microsoft Research, 2010. http://research.microsoft.com/apps/pubs/?id=138569.Google Scholar
- P. Ganty and R. Majumdar. Algorithmic verification of asynchronous programs. CoRR, abs/1011.0551, 2010. http://arxiv.org/abs/1011.0551. Google Scholar
Digital Library
- J. J. Garrett. Ajax: A new approach to web applications, February 2005. http://www.adaptivepath.com/ideas/essays/archives/000385.php.Google Scholar
- N. Ghafari, A. J. Hu, and Z. Rakamarić. Context-bounded translations for concurrent software: An empirical evaluation. In SPIN '10: Proc. 17th International Workshop on Model Checking Software, volume 6349 of LNCS, pages 227--244. Springer, 2010. Google Scholar
Digital Library
- P. Godefroid. Model checking for programming languages using VeriSoft. In POPL '97: Proc. 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 174--186. ACM, 1997. Google Scholar
Digital Library
- J. L. Hill, R. Szewczyk, A. Woo, S. Hollar, D. E. Culler, and K. S. J. Pister. System architecture directions for networked sensors. In ASPLOS '00: Proc. 9th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 93--104. ACM, 2000. Google Scholar
Digital Library
- R. Jhala and R. Majumdar. Interprocedural analysis of asynchronous programs. In POPL '07: Proc. 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 339--350. ACM, 2007. Google Scholar
Digital Library
- P. Joshi, M. Naik, C.-S. Park, and K. Sen. CalFuzzer: An extensible active testing framework for concurrent programs. In CAV '09: Proc. 21st International Conference on Computer Aided Verification, volume 5643 of LNCS, pages 675--681. Springer, 2009. Google Scholar
Digital Library
- N. Kidd, S. Jagannathan, and J. Vitek. One stack to run them all: Reducing concurrent analysis to sequential analysis under priority scheduling. In SPIN '10: Proc. 17th International Workshop on Model Checking Software, volume 6349 of LNCS, pages 245--261. Springer, 2010. Google Scholar
Digital Library
- E. Kohler, R. Morris, B. Chen, J. Jannotti, and M. F. Kaashoek. The Click modular router. ACM Trans. Comput. Syst., 18 (3): 263--297, 2000. Google Scholar
Digital Library
- S. La Torre, P. Madhusudan, and G. Parlato. Reducing context-bounded concurrent reachability to sequential reachability. In CAV '09: Proc. 21st International Conference on Computer Aided Verification, volume 5643 of LNCS, pages 477--492. Springer, 2009. Google Scholar
Digital Library
- S. La Torre, P. Madhusudan, and G. Parlato. Model-checking parameterized concurrent programs using linear interfaces. In CAV '10: Proc. 22nd International Conference on Computer Aided Verification, volume 6174 of LNCS, pages 629--644. Springer, 2010. Google Scholar
Digital Library
- S. La Torre, P. Madhusudan, and G. Parlato. Sequentializing parameterized programs, 2010. Under submission.Google Scholar
- S. K. Lahiri, S. Qadeer, and Z. Rakamarić. Static and precise detection of concurrency errors in systems code using SMT solvers. In CAV '09: Proc. 21st International Conference on Computer Aided Verification, volume 5643 of LNCS, pages 509--524. Springer, 2009. Google Scholar
Digital Library
- A. Lal and T. W. Reps. Reducing concurrent analysis under a context bound to sequential analysis. Formal Methods in System Design, 35 (1): 73--97, 2009. Google Scholar
Digital Library
- L. Lamport. Proving the correctness of multiprocess programs. IEEE Trans. Software Eng., 3 (2): 125--143, 1977. Google Scholar
Digital Library
- M. Musuvathi and S. Qadeer. Iterative context bounding for systematic testing of multithreaded programs. In PLDI '07: Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 446--455. ACM, 2007. Google Scholar
Digital Library
- M. Musuvathi, S. Qadeer, T. Ball, G. Basler, P. A. Nainar, and I. Neamtiu. Finding and reproducing Heisenbugs in concurrent programs. In OSDI '08: Proc. 8th USENIX Symposium on Operating Systems Design and Implementation, pages 267--280. USENIX Association, 2008. Google Scholar
Digital Library
- W. Oney. Programming the Microsoft Windows Driver Model. Microsoft Press, 2nd edition, 2002. Google Scholar
Digital Library
- V. S. Pai, P. Druschel, and W. Zwaenepoel. Flash: An efficient and portable web server. In USENIX '99: Proc. General Track of the USENIX Annual Technical Conference, pages 199--212. USENIX, 1999. Google Scholar
Digital Library
- C. H. Papadimitriou. Computational Complexity. Addison Wesley, 1993.Google Scholar
- S. Qadeer and J. Rehof. Context-bounded model checking of concurrent software. In TACAS '05: Proc. 11th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, volume 3440 of LNCS, pages 93--107. Springer, 2005. Google Scholar
Digital Library
- S. Qadeer and D. Wu. KISS: Keep it simple and sequential. In PLDI '04: Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 14--24. ACM, 2004. Google Scholar
Digital Library
- G. Ramalingam. Context-sensitive synchronization-sensitive analysis is undecidable. ACM Trans. Program. Lang. Syst., 22 (2): 416--430, 2000. Google Scholar
Digital Library
- K. Sen and M. Viswanathan. Model checking multithreaded programs with asynchronous atomic methods. In CAV '06: Proc. 18th International Conference on Computer Aided Verification, volume 4144 of LNCS, pages 300--314. Springer, 2006. Google Scholar
Digital Library
Index Terms
Delay-bounded scheduling
Recommendations
Delay-bounded scheduling
POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe provide a new characterization of scheduling nondeterminism by allowing deterministic schedulers to delay their next-scheduled task. In limiting the delays an otherwise-deterministic scheduler is allowed, we discover concurrency bugs efficiently---by ...
Scheduling Multiprocessor Tasks to Minimize Schedule Length
The problem considered in this paper is the deterministic scheduling of tasks on a set of identical processors. However, the model presented differs from the classical one by the requirement that certain tasks need more than one processor at a time for ...
Exploiting synchronization in the analysis of shared-memory asynchronous programs
SPIN 2014: Proceedings of the 2014 International SPIN Symposium on Model Checking of SoftwareAs asynchronous programming becomes more mainstream, program analyses capable of automatically uncovering programming errors are increasingly in demand. Since asynchronous program analysis is computationally costly, current approaches sacrifice ...







Comments