期刊文献+

复杂内核数据结构程序形式化验证

Formal Verification of Complex Kernel Data Structure Programs
下载PDF
导出
摘要 操作系统内核作为软件系统的基础组件,其安全可靠是构造高可信软件系统的重要环节,但是,在实际的验证工作中,操作系统内核中全局性质的不变式定义,复杂数据结构程序的形式化描述和验证仍存在很多困难.本文针对操作系统内核中满足的全局性质,在代码层以函数为单位,用全局不变式进行定义,并在不同的函数中进行形式化验证,从而证明各个函数符合操作系统内核的全局性质;针对操作系统内核中经常使用的复杂数据结构程序,本文通过扩展形状图理论,提出一种使用嵌套形状图逻辑的方法来形式化描述复杂数据结构程序,并对该方法进行了正确性证明,最终成功验证操作系统内核中关于任务创建与调度,消息队列创建与操作相关的代码. As a fundamental component of a software system,the kernel of an operating system plays a crucial role in constructing a highly trusted software system.However,in practical verification,there are still many difficulties in invariant definition of global properties,and formal description and verification of complex data structure programs in the kernel of an operating system.Given the global properties satisfied by the kernel of an operating system,this study defines these properties at the code level on a function-by-function basis through global invariants and conducts formal verification in different functions to prove that each function conforms to the global properties of the operating system kernel.To formalize the complex data structure programs frequently adopted in the kernel of an operating system,the study proposes a method employing nested shape graph logic by extending the shape graph theory and provides a correctness proof for this method.Finally,it verifies the code related to task creation and scheduling,and message queue creation and operation in the operating system kernel.
作者 李薛剑 余韵 LI Xue-Jian;YU Yun(School of Computer Science and Technology,Anhui University,Hefei 230601,China)
出处 《计算机系统应用》 2023年第11期253-266,共14页 Computer Systems & Applications
关键词 形式化验证 内核验证 内核数据结构 霍尔逻辑 formal verification kernel verification kernel data structure Hoare logic
  • 相关文献

参考文献5

二级参考文献34

  • 1Hoare C A R. An axiomatic basis for computer programming [J]. Communications of the ACM, 1969, 12(10):576-585.
  • 2Paulson L C. Isabelle~ A Generic Theorem Prover [M]. Berlin: Springer, 1994:1-300.
  • 3The Coq Development Team. The Coq proof assistant reference manual, Version 8.2 lOLl. [2009-08-01]. http: //coq. inria, fr.
  • 4Aleksandar N, Morrisett G, Sbinnar A, et al. Ynot: Dependent types for imperative programs [C] //Proe of the 13th ACM SIGPLAN Int Conf on Functional Programming (ICFP'08). New York: ACM, 2008:229-240.
  • 5Barnett M, Rustan M, Leino M, et al. The spec programming system, An overview [G] //LNCS 3362: Proc of Int Workshop Construction and Analysis of Safe, Secure, and Interoperable Smart Devices (CASSIS 2004). Berlin: Springer, 2004: 49-69.
  • 6Flanagan C, Leino K R M, Lillibridge M, et al. Extended static checking for Java [C] //Proc of the Conf on Programming Language Design and Implementation (PLDI'02). New York. ACM, 2002: 234-245.
  • 7Berdine J, Calcagno C, O'Hearn P W. Smallfoot: Modular automatic assertion checking with separation logic [G] // LNCS 4111~ Proc of Formal Methods for Components and Objects(FMCO 2005). Berlin: Springer, 2005:115-137.
  • 8Distefano D, Parkinson M J. jStar: Towards practical verification for Java [C] //Proc of ACM SIGPLAN Int Conf on Object-Oriented Programming, Systems, Languages, and Applications(OOPSLA 2008). New York: ACM, 2008: 213-226.
  • 9Carter G, Monahan R, Morris J M. Software refinement with perfect developer [C] //Proc of the 3rd IEEE Int Conf on Software Engineering and Formal Methods(SEFM 2005). Piscataway, NJ: IEEE, 2005:363-372.
  • 10Reynolds J C. Separation logic: A logic for shared mutable data structures [C] //Proc of the 17th Annual IEEE Symp on Logic in Computer Science (LICS 2002). Piscataway, NJ: IEEE, 2002:55-74.

共引文献32

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部