A Verification Approach for System-Level Concurrent Programs

  • Matthias Daum
  • Jan Dörrenbächer
  • Mareike Schmidt
  • Burkhart Wolff
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5295)

Abstract

Though the verification of operating systems is an active research field, a verification method is still missing that provides both, the proximity to practically used programming languages such as C and a realistic model of concurrency, i.e. a model that copes with the granularity of atomic operations actually used in a target machine.

Our approach serves as the foundation for the verification of concurrent programs in C0 – a C fragment enriched by kernel communication primitives – in a Hoare-Logic. C0 is compiled by a verified compiler into assembly code representing a cooperative concurrent transition system. For the latter, it is shown that it can actually be executed in a true concurrent way reflecting the C0 semantics.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Leinenbach, D., Petrova, E.: Pervasive compiler verification: From verified programs to verified systems. In: Systems Software Verification. Elsevier, Amsterdam (to appear, 2008)Google Scholar
  2. 2.
    Schirmer, N.: Verification of Sequential Imperative Programs in Isabelle/HOL. PhD thesis, TU Munich (2006)Google Scholar
  3. 3.
    Leinenbach, D., Paul, W.J., Petrova, E.: Towards the formal verification of a C0 compiler: Code generation and implementation correctness. In: SEFM, pp. 2–12. IEEE Computer Society, Los Alamitos (2005)Google Scholar
  4. 4.
    Beyer, S., Jacobi, C., Kröning, D., Leinenbach, D., Paul, W.J.: Putting it all together: Formal verification of the VAMP. STTT 8(4-5), 411–430 (2006)CrossRefGoogle Scholar
  5. 5.
    Verisoft Project: Verisoft repository (2008), http://www.verisoft.de/VerisoftRepository.html
  6. 6.
    Starostin, A., Tsyban, A.: Correct microkernel primitives. In: Systems Software Verification. Elsevier, Amsterdam (to appear, 2008)Google Scholar
  7. 7.
    Hillebrand, M.A., In der Rieden, T., Paul, W.J.: Dealing with I/O devices in the context of pervasive system verification. In: ICCD, pp. 309–316. IEEE, Los Alamitos (2005)Google Scholar
  8. 8.
    Bevier, W.R.: Kit and the short stack. J. Autom. Reasoning 5(4), 519–530 (1989)Google Scholar
  9. 9.
    Hohmuth, M., Tews, H., Stephens, S.G.: Applying source-code verification to a microkernel: the VFiasco project. In: ACM SIGOPS European Workshop, pp. 165–169. ACM, New York (2002)CrossRefGoogle Scholar
  10. 10.
    Tews, H.: Formal methods in the Robin project: Specification and verification of the Nova microhypervisor. In: C/C++ Verification Workshop, technical report ICIS–R07015, Radboud University Nijmegen, pp. 59–68 (2007)Google Scholar
  11. 11.
    Heiser, G., Elphinstone, K., Kuz, I., Klein, G., Petters, S.M.: Towards trustworthy computing systems: taking microkernels to the next level. Operating Systems Review 41(4), 3–11 (2007)CrossRefGoogle Scholar
  12. 12.
    Shapiro, J.S., Weber, S.: Verifying the EROS confinement mechanism. In: IEEE Symposium on Security and Privacy, pp. 166–176 (2000)Google Scholar
  13. 13.
    Shapiro, J., Doerrie, M.S., Northup, E., Sridhar, S., Miller, M.: Towards a verified, general-purpose operating system kernel. In: FM Workshop on OS Verification. Technical Report 0401005T-1, National ICT Australia, pp. 1–19 (2004)Google Scholar
  14. 14.
    Ni, Z., Yu, D., Shao, Z.: Using XCAP to certify realistic systems code: Machine context management. In: TPHOLs, pp. 189–206. Springer, Heidelberg (2007)Google Scholar
  15. 15.
    Hobor, A., Appel, A.W., Nardelli, F.Z.: Oracle semantics for concurrent separation logic. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 353–367. Springer, Heidelberg (2008)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Matthias Daum
    • 1
  • Jan Dörrenbächer
    • 1
  • Mareike Schmidt
    • 1
  • Burkhart Wolff
    • 1
  1. 1.Computer Science Dept.Saarland UniversitySaarbrückenGermany

Personalised recommendations