Skip to main content

Runtime Monitoring for Concurrent Systems

  • Conference paper
  • First Online:
Runtime Verification (RV 2016)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10012))

Included in the following conference series:

Abstract

Most existing specification languages for runtime verification describe the properties of the entire system in a top-down manner, and lack constructs to describe concurrency in the specification directly. \( CSP _E\) is a runtime-monitoring framework based on Hoareā€™s Communicating Sequential Processes (CSP) that captures concurrency in the specification directly. In this paper, we define the syntax of \( CSP _E\) and its formal semantics. In comparison to quantified event automata (QEA), as an example, \( CSP _E\) describes a specification for a concurrent system in a bottom-up manner, whereas QEA lends itself to a top-down manner. We also present an implementation of \( CSP _E\), which supports full \( CSP _E\) without optimization. When comparing its performance to that of QEA, our implementation of \( CSP _E\) requires slightly more than twice the time required by QEA; we consider this overhead to be acceptable. Finally, we introduce a tool named stracematch, which is developed using \( CSP _E\). It monitors system calls in (Mac) OS X and verifies the usage of file descriptors by a monitored process.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., LhotĆ”k, O.V.R., De Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: Johnson, R., Baniassad, E., Gabriel, R.P., Noble, J., Marick, B. (eds.) OOPSLA 2005, pp. 345ā€“364. ACM, New York (2005)

    Google ScholarĀ 

  2. Apple: ls, version 7.2.0.0.1.1447826929

    Google ScholarĀ 

  3. Artho, C., Havelund, K., Kumar, R., Yamagata, Y.: Domain-specific languages with Scala. In: Butler, M., et al. (eds.) ICFEM 2015. LNCS, vol. 9407, pp. 1ā€“16. Springer, Heidelberg (2015). doi:10.1007/978-3-319-25423-4_1

    ChapterĀ  Google ScholarĀ 

  4. Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from EAGLE to RULER. J. Log. Comput. 20(3), 675ā€“706 (2010). Oxford University Press

    ArticleĀ  MathSciNetĀ  MATHĀ  Google ScholarĀ 

  5. Barringer, H., Falcone, Y., Havelund, K., Reger, G., Rydeheard, D.: Quantified event automata: towards expressive and efficient runtime monitors. In: Giannakopoulou, D., MĆ©ry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 68ā€“84. Springer, Heidelberg (2012)

    ChapterĀ  Google ScholarĀ 

  6. Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 44ā€“57. Springer, Heidelberg (2004)

    ChapterĀ  Google ScholarĀ 

  7. Barringer, H., Havelund, K.: TraceContract: a Scala DSL for trace analysis. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 57ā€“72. Springer, Heidelberg (2011). doi:10.1007/978-3-642-21437-0_7

    ChapterĀ  Google ScholarĀ 

  8. Basin, D., Klaedtke, F., MĆ¼ller, S.: Policy monitoring in first-order temporal logic. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 1ā€“18. Springer, Heidelberg (2010)

    ChapterĀ  Google ScholarĀ 

  9. Bauer, A., KĆ¼ster, J.-C., Vegliach, G.: From propositional to first-order monitoring. In: Legay, A., Bensalem, S. (eds.) RV 2013. LNCS, vol. 8174, pp. 59ā€“75. Springer, Heidelberg (2013)

    ChapterĀ  Google ScholarĀ 

  10. Bauer, A., Falcone, Y.: Decentralised LTL monitoring. In: Giannakopoulou, D., MĆ©ry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 85ā€“100. Springer, Heidelberg (2012). doi:10.1007/978-3-642-32759-9_10

    ChapterĀ  Google ScholarĀ 

  11. Birchall, C.: ScalaCache. https://github.com/cb372/scalacache

  12. Cantrill, B., Shapiro, M., Leventhal, A.: Dynamic instrumentation of production systems. In: USENIX 2004, pp. 15ā€“22. USENIX (2004)

    Google ScholarĀ 

  13. Cuenca, H.: QEA. https://github.com/selig/qea

  14. Colombo, C., Pace, G.J., Schneider, G.: Dynamic event-based runtime monitoring of real-time and contextual properties. In: Cofer, D., Fantechi, A. (eds.) FMICS 2008. LNCS, vol. 5596, pp. 135ā€“149. Springer, Heidelberg (2009)

    ChapterĀ  Google ScholarĀ 

  15. Colombo, C., Pace, G.J., Schneider, G.: LARVA - safer monitoring of real-time Java programs (tool paper). In: Hung, D.V., Krishnan, P. (eds.) SEFM 2009. IEEE Computer Society (2009)

    Google ScholarĀ 

  16. Colombo, C., Francalanza, A., Mizzi, R., Pace, G.J.: polyLarva: runtime verification with configurable resource-aware monitoring boundaries. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) SEFM 2012. LNCS, vol. 7504, pp. 218ā€“232. Springer, Heidelberg (2012)

    ChapterĀ  Google ScholarĀ 

  17. Dā€™Amorim, M., Havelund, K.: Event-based runtime verification of Java programs. ACM SIGSOFT Softw. Eng. Notes 30(4), 1ā€“7 (2005)

    ArticleĀ  Google ScholarĀ 

  18. Decker, N., Leucker, M., Thoma, D.: Monitoring modulo theories. In: ƁbrahĆ”m, E., Havelund, K. (eds.) TACAS 2014 (ETAPS). LNCS, vol. 8413, pp. 341ā€“356. Springer, Heidelberg (2014)

    ChapterĀ  Google ScholarĀ 

  19. Drusinsky, D.: Modeling and verification using UML statecharts: a working guide to reactive system design, runtime monitoring and execution-based model checking. Newnes (2011)

    Google ScholarĀ 

  20. Runtime Verification 2014: First international competition on runtime verification. http://rv2014.imag.fr/monitoring-competition/results.html

  21. Francalanza, A., Seychell, A.: Synthesising correct concurrent runtime monitors. Formal Meth. Syst. Des. 46(3), 226ā€“261 (2014). Springer, US

    ArticleĀ  MATHĀ  Google ScholarĀ 

  22. Garavel, H., Mateescu, R.: SEQ.OPEN: a tool for efficient trace-based verification. In: Graf, S., Mounier, L. (eds.) SPIN 2004. LNCS, vol. 2989, pp. 151ā€“157. Springer, Heidelberg (2004)

    ChapterĀ  Google ScholarĀ 

  23. Garavel, H., Lang, F., Mateescu, R., Serwe, W.: CADP 2011: a toolbox for the construction and analysis of distributed processes. Int. J. Softw. Tools Technol. Transf. 15(2), 89ā€“107 (2013). Springer

    ArticleĀ  MATHĀ  Google ScholarĀ 

  24. Google Inc.: Chrome, version 47.0.2526.111 (64-bit)

    Google ScholarĀ 

  25. Google Inc.: Guava. https://github.com/google/guava

  26. Goubault-Larrecq, J., Olivain, J.: A smell of Orchids. In: Leucker, M. (ed.) RV 2008. LNCS, vol. 5289, pp. 1ā€“20. Springer, Heidelberg (2008)

    ChapterĀ  Google ScholarĀ 

  27. GNU project: bash, version 4.3.42(1)-release (x86_64-apple-darwin14.5.0). https://www.gnu.org/software/bash/

  28. GNU project: Emacs, version 24.5.1. https://www.gnu.org/software/emacs/

  29. GNU project: wget, version 1.17.21-df7cb-dirty built on darwin14.5.0. https://www.gnu.org/software/wget/

  30. HallĆ©, S., Villemaire, R.: Runtime enforcement of web service message contracts with data. IEEE Trans. Serv. Comput. 5(2), 192ā€“206 (2012). IEEE

    ArticleĀ  Google ScholarĀ 

  31. Havelund, K., Roşu, G.: Monitoring programs using rewriting. In: Feather, M., Goedicke, M. (eds.) ASE 2001, pp. 135ā€“143. IEEE CS Press, November 2001

    Google ScholarĀ 

  32. Havelund, K.: Runtime verification of C programs. In: Suzuki, K., Higashino, T., Ulrich, A., Hasegawa, T. (eds.) TestCom/FATES 2008. LNCS, vol. 5047, pp. 7ā€“22. Springer, Heidelberg (2008)

    ChapterĀ  Google ScholarĀ 

  33. Havelund, K.: Rule-based runtime verification revisited. Int. J. Softw. Tools Technol. Transf. 17(2), 143ā€“170 (2014). Springer

    ArticleĀ  Google ScholarĀ 

  34. Havelund, K., Reger, G.: Specification of parametric monitors: quantified event automata versus rule system. In: Formal Modeling and Verification of Cyber-Physical Systems, pp. 151ā€“189. Springer Fachmedien Wiesbaden (2015)

    Google ScholarĀ 

  35. Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall International, London (1985)

    MATHĀ  Google ScholarĀ 

  36. Kassem, A., Falcone, Y., Lafourcade, P.: Monitoring electronic exams. In: Bartocci, E., et al. (eds.) RV 2015. LNCS, vol. 9333, pp. 118ā€“135. Springer, Heidelberg (2015). doi:10.1007/978-3-319-23820-3_8

    ChapterĀ  Google ScholarĀ 

  37. Lee, I., Kannan, S., Kim, M., Sokolsky, O., Viswanathan, M.: Runtime assurance based on formal specifications. In: Arabnia, H.R. (ed.) PDPTA 1999, pp. 279ā€“287. CSREA Press (1999)

    Google ScholarĀ 

  38. Matsumoto, Y.: Ruby, version 2.2.2p95 (2015ā€“04-13 revision 50295) [x86_64-darwin14]

    Google ScholarĀ 

  39. Meredith, P.O., Jin, D., Griffith, D., Chen, F., Roşu, G.: An overview of the MOP runtime verification framework. Int. J. Softw. Tools Technol. Transf. 14(3), 249ā€“289 (2012). Springer

    ArticleĀ  Google ScholarĀ 

  40. Mizerany, B.: Sinatra, version 1.4.7. http://www.sinatrarb.com/

  41. Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima, Suffolk (2016)

    Google ScholarĀ 

  42. Qadeer, S., Tasiran, S.: Runtime verification of concurrency-specific correctness criteria. Int. J. Softw. Tools Technol. Transf. 14(3), 291ā€“305 (2012). Springer

    ArticleĀ  Google ScholarĀ 

  43. Reger, G.: Automata based monitoring and mining of execution traces. Ph.D. thesis, University of Manchester (2014)

    Google ScholarĀ 

  44. Reger, G., Cruz, H.C., Rydeheard, D.: MarQ: monitoring at runtime with QEA. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 596ā€“610. Springer, Heidelberg (2015)

    Google ScholarĀ 

  45. Roscoe, A.W., Hoare, C.A.R., Bird, R.: The Theory and Practice of Concurrency. Prentice Hall PTR, Upper Saddle River (1997)

    Google ScholarĀ 

  46. Stolz, V.: Temporal assertions with parametrized propositions. J. Log. Comput. 20(3), 743ā€“757 (2008). Oxford University Press

    ArticleĀ  MathSciNetĀ  MATHĀ  Google ScholarĀ 

  47. Stolz, V., Bodden, E.: Temporal assertions using AspectJ. Electron. Notes Theoret. Comput. Sci. 144, 109ā€“124 (2006). Elsevier

    ArticleĀ  Google ScholarĀ 

  48. Stolz, V., Huch, F.: Runtime verification of concurrent Haskell programs. Electron. Notes Theoret. Comput. Sci. 113, 201ā€“216 (2005). Elsevier

    ArticleĀ  Google ScholarĀ 

  49. Stucki, N.: multisets. https://github.com/nicolasstucki/multisets

  50. Sun, J., Liu, Y., Dong, J.S., Pang, J.: PAT: towards flexible verification under fairness. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 709ā€“714. Springer, Heidelberg (2009)

    ChapterĀ  Google ScholarĀ 

  51. University of Oxford: FDR3, https://www.cs.ox.ac.uk/projects/fdr/

  52. Yamagata, Y.: CSP_E: log analyzing tool for concurrent systems. https://github.com/yoriyuki/cspe

Download references

Acknowledgments

We are grateful to Giles Reger for helping to develop the QEA models, and to Eijiro Sumii for helping us to develop the proof of TheoremĀ 3. Yoshinao Isobe influenced the early design of the language. This work was supported by JSPS KAKENHI Grant Number JP26280019. We would like to thank Editage (www.editage.jp) for English-language editing.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yoriyuki Yamagata .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

Ā© 2016 Springer International Publishing AG

About this paper

Cite this paper

Yamagata, Y. et al. (2016). Runtime Monitoring for Concurrent Systems. In: Falcone, Y., SƔnchez, C. (eds) Runtime Verification. RV 2016. Lecture Notes in Computer Science(), vol 10012. Springer, Cham. https://doi.org/10.1007/978-3-319-46982-9_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-46982-9_24

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-46981-2

  • Online ISBN: 978-3-319-46982-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics