skip to main content
research-article

Delay-bounded scheduling

Published:26 January 2011Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

37-mpeg-4.mp4

References

  1. M. Abadi and L. Lamport. The existence of refinement mappings. Theor. Comput. Sci., 82 (2): 253--284, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Bouajjani and R. Majumdar. Personal communication, July 2010.Google ScholarGoogle Scholar
  6. S. Burckhardt and M. Musuvathi. Personal communication, November 2010.Google ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Corbet, A. Rubini, and G. Kroah-Hartman. Linux Device Drivers. O'Reilly Media, Inc., 3rd edition, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarCross RefCross Ref
  13. 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 ScholarGoogle Scholar
  14. P. Ganty and R. Majumdar. Algorithmic verification of asynchronous programs. CoRR, abs/1011.0551, 2010. http://arxiv.org/abs/1011.0551. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. J. Garrett. Ajax: A new approach to web applications, February 2005. http://www.adaptivepath.com/ideas/essays/archives/000385.php.Google ScholarGoogle Scholar
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. S. La Torre, P. Madhusudan, and G. Parlato. Sequentializing parameterized programs, 2010. Under submission.Google ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. L. Lamport. Proving the correctness of multiprocess programs. IEEE Trans. Software Eng., 3 (2): 125--143, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. W. Oney. Programming the Microsoft Windows Driver Model. Microsoft Press, 2nd edition, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. C. H. Papadimitriou. Computational Complexity. Addison Wesley, 1993.Google ScholarGoogle Scholar
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  36. G. Ramalingam. Context-sensitive synchronization-sensitive analysis is undecidable. ACM Trans. Program. Lang. Syst., 22 (2): 416--430, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Delay-bounded scheduling

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 46, Issue 1
                POPL '11
                January 2011
                624 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1925844
                Issue’s Table of Contents
                • cover image ACM Conferences
                  POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                  January 2011
                  652 pages
                  ISBN:9781450304900
                  DOI:10.1145/1926385

                Copyright © 2011 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 26 January 2011

                Check for updates

                Qualifiers

                • research-article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!