Advertisement

Barriers in Concurrent Separation Logic

  • Aquinas Hobor
  • Cristian Gherghina
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6602)

Abstract

We develop and prove sound a concurrent separation logic for Pthreads-style barriers. Although Pthreads barriers are widely used in systems, and separation logic is widely used for verification, there has not been any effort to combine the two. Unlike locks and critical sections, Pthreads barriers enable simultaneous resource redistribution between multiple threads and are inherently stateful, leading to significant complications in the design of the logic and its soundness proof. We show how our logic can be applied to a specific example program in a modular way. Our proofs are machine-checked in Coq.

Keywords

Central Authority Separation Logic Barrier State Hoare Logic Full Ownership 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Appel, A., Dockins, R., Hobor, A.: Mechanized Semantic Library (2009-2010), http://msl.cs.princeton.edu
  2. 2.
    Appel, A.W., Blazy, S.: Separation logic for small-step C minor. In: Schneider, K., Brandt, J. (eds.) TPHOLs 2007. LNCS, vol. 4732, pp. 5–21. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    Bell, C.J., Appel, A.W., Walker, D.: Concurrent separation logic for pipelined parallelization. In: Cousot, R., Martel, M. (eds.) SAS 2010. LNCS, vol. 6337, pp. 151–166. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  4. 4.
    Bienia, C.: Benchmarking Modern Multiprocessors. PhD thesis, Princeton University, Department of Computer Science, Princeton, NJ (December 2010)Google Scholar
  5. 5.
    Bornat, R., Calcagno, C., O’Hearn, P., Parkinson, M.: Permission accounting in separation logic. In: POPL, pp. 259–270 (2005)Google Scholar
  6. 6.
    Brookes, S.D.: A semantics for concurrent separation logic. In: Gardner, P., Yoshida, N. (eds.) CONCUR 2004. LNCS, vol. 3170, pp. 16–34. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  7. 7.
    Butenhof, D.R.: Programming with POSIX Threads. Addison-Wesley, Reading (1997)Google Scholar
  8. 8.
    Calcagno, C., Distefano, D., Vafeiadis, V.: Bi-abductive resource invariant synthesis. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 259–274. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  9. 9.
    Calcagno, C., O’Hearn, P.W., Yang, H.: Local action and abstract separation logic. In: Symposium on Logic in Computer Science (2007)Google Scholar
  10. 10.
    Chandra, R., Menon, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J.: Parallel Programming in OpenMP. Morgan Kaufmann, San Francisco (2000)Google Scholar
  11. 11.
    Dockins, R., Hobor, A., Appel, A.W.: A fresh look at separation algebras and share accounting. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 161–177. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  12. 12.
    Gotsman, A., Berdine, J., Cook, B.: Interprocedural Shape Analysis with Separated Heap Abstractions. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 240–260. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  13. 13.
    Gotsman, A., Berdine, J., Cook, B., Rinetzky, N., Sagiv, M.: Local reasoning for storable locks and threads. In: Shao, Z. (ed.) APLAS 2007. LNCS, vol. 4807, pp. 19–37. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  14. 14.
    Hobor, A.: Oracle semantics. Technical Report TR-836-08, Princeton (2008)Google Scholar
  15. 15.
    Hobor, A., Appel, A.W., Nardelli, F.Z.: Oracle semantics for concurrent separation logic. In: Gairing, M. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 353–367. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  16. 16.
    Hobor, A., Dockins, R., Appel, A.W.: A theory of indirection via approximation. In: POPL 2010, pp. 171–185 (2010)Google Scholar
  17. 17.
    Jacobs, B., Piessens, F.: Expressive modular fine-grained concurrency specification. In: POPL (to appear, 2011)Google Scholar
  18. 18.
    O’Hearn, P.W.: Resources, concurrency and local reasoning. Theoretical Computer Science 375(1), 271–307 (2007)MathSciNetCrossRefzbMATHGoogle Scholar
  19. 19.
    Villard, J., Lozes, É., Calcagno, C.: Proving copyless message passing. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 194–209. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  20. 20.
    Villard, J., Lozes, É., Calcagno, C.: Tracking heaps that hop with heap-hop. In: Esparza, J., Majumdar, R. (eds.) TACAS 2010. LNCS, vol. 6015, pp. 275–279. Springer, Heidelberg (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Aquinas Hobor
    • 1
  • Cristian Gherghina
    • 1
  1. 1.National University of SingaporeSingapore

Personalised recommendations