×

用硬件中断和抢占线程验证低级程序。 (英语) Zbl 1191.68176号

摘要:硬件中断广泛用于世界上的关键软件系统,以支持抢占式线程、设备驱动程序、操作系统内核和虚拟机监控程序。正确处理中断是低级系统编程的重要组成部分。不幸的是,中断也很难解释:它们极大地改变了程序控制流,并使低级并发代码中的不变量复杂化(例如,同步原语的实现)。现有的形式化验证技术,包括Hoare逻辑、类型化汇编语言、并发分离逻辑和假设保证方法,一直忽略了中断问题;这严重限制了当今程序验证系统的适用性和功能。本文提出了一种新颖的类Hoare逻辑框架,用于验证涉及硬件中断和抢占线程的低级系统程序。我们表明,使用简单的所有权转移语义可以精确地形式化启用和禁用中断,同样的技术也可以扩展到并发设置。通过仔细推理中断处理程序、上下文切换和同步库之间的交互,我们首次成功地验证了抢占式线程实现和大量通用同步原语。我们的工作为基于中断的内核程序的推理提供了基础,并在构建完全认证的操作系统内核和虚拟机监控程序方面取得了重要进展。

MSC公司:

68N25号 操作系统理论
68号30 软件工程的数学方面(规范、验证、度量、需求等)
03B70号 计算机科学中的逻辑
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Berdine,J.,Calcagno,C.,O’Hearn,P.W.:Smallfoot:具有分离逻辑的模块化自动断言检查。In:程序。第四届组件和对象形式化方法国际研讨会(FMCO'05)。LNCS,第4111卷,第115-137页。施普林格,纽约(2005)
[2] Bevier,W.R.:Kit:操作系统验证研究。IEEE传输。柔和。工程15(11),1382-1396(1989)·数字对象标识代码:10.1109/32.41331
[3] Bornat,R.,Calcagno,C.,O’Hearn,P.,Parkinson,M.:分离逻辑中的权限会计。In:程序。第32届ACM交响乐团。程序原则。兰格,第259-270页。ACM,纽约(2005)·Zbl 1369.68130号
[4] Brinch Hansen,P.:编程语言并发pascal。IEEE传输。软件工程1(2),199-207(1975)
[5] Brookes,S.:并发分离逻辑的语义。In:程序。第15届并行理论国际会议(CONCUR’04)。LNCS,第3170卷,第16-34页。施普林格,纽约(2004)·Zbl 1099.68650号
[6] Coq开发团队:Coq证明助理参考手册。Coq版本v8.1(2006)
[7] DeLine,R.,Fähndrich,M.:在低级软件中实施高级协议。In:程序。2001年ACM程序会议。语言设计与实施。,第59-69页。ACM,纽约(2001)
[8] Feng,X.,Ferreira,R.,Shao,Z.:关于并发分离逻辑和假设保证推理之间的关系。In:程序。第16届欧洲交响乐团。项目。(2007年员工持股计划)。LNCS,第4421卷,第173-188页。施普林格,纽约(2007)·Zbl 1187.68150号
[9] Feng,X.、Ni,Z.、Shao,Z.和Guo,Y.:一个用于基础校对代码的开放框架。In:程序。2007年ACM语言设计与实施类型研讨会。,第67-78页。ACM,纽约(2007)
[10] Feng,X.,Shao,Z.:具有动态线程创建和终止的并发汇编代码的模块化验证。In:程序。2005年ACM国际功能进展会议。,第254-267页。ACM,纽约(2005)·Zbl 1302.68088号
[11] 冯,X,邵,Z:SCAP中的局部推理和信息隐藏。技术代表YALEU/DCS/TR-1398,耶鲁大学计算机科学系,康涅狄格州纽黑文(2008)。http://flint.cs.yale.edu/publications/SCAPFrame.html
[12] Feng,X.,Shao,Z.,Guo,Y.,Dong,Y.:结合特定领域和基础逻辑来验证完整的软件系统。In:程序。第二届IFIP验证软件工作会议:理论、工具和实验(VSTTE’08)。LNCS,第5295卷,第54–69页。施普林格,纽约(2008)
[13] Feng,X.,Shao,Z.,Vaynberg,A.,Xiang,S.,Ni,Z.:使用基于堆栈的控制抽象对装配代码进行模块化验证。In:程序。2006年ACM程序会议。语言设计与实施。,第401-414页。ACM,纽约(2006)
[14] Gargano,M.,Hillebrand,M.A.,Leinenbach,D.,Paul,W.J.:关于操作系统内核的正确性。In:程序。第18届国际高阶逻辑定理证明会议。LNCS,第3603卷,第1-16页。施普林格,纽约(2005)·Zbl 1152.68423号
[15] Gotsman,A.、Berdine,J.、Cook,B.、Rinetzky,N.、Sagiv,M.:可存储锁和线程的局部推理。In:程序。第五亚洲交响乐团。项目。语言和系统。(2007年4月)。LNCS,第4807卷,第19-37页。施普林格,纽约(2007)·Zbl 1137.68354号
[16] Hoare,C.A.R.:计算机编程的公理基础。Commun公司。ACM 26(1),53–56(1969)·Zbl 0179.23105号 ·数字对象标识代码:10.1145/357980.358001
[17] Hoare,C.A.R.:走向并行编程理论。摘自:《操作系统技术》,第61-71页。伦敦学术出版社(1972年)
[18] Hoare,C.A.R.:监视器:操作系统结构概念。Commun公司。ACM 17(10),549–557(1974)·Zbl 0308.68029号 ·doi:10.1145/355620.361161
[19] Hobor,A.,Appel,A.W.,Nardelli,F.Z.:并发分离逻辑的Oracle语义。In:程序。第17届欧洲研讨会。关于Prog。(2008年员工持股计划)。LNCS,第4960卷,第353–367页。施普林格,纽约(2008)·Zbl 1133.68371号
[20] Hunt,G.C.,Larus,J.R.:奇点设计动机。技术代表MSR-TR-2004-105,微软公司(2004)
[21] Ishtiaq,S.S.,O'Hearn,P.W.:BI作为可变数据结构的断言语言。In:程序。第28届ACM研讨会。程序原则。兰格,第14-26页。ACM,纽约(2001)·Zbl 1323.68077号
[22] Jones,C.B.:开发干扰程序的开发方法的初步步骤。ACM事务处理。程序。语言系统。5(4), 596–619 (1983) ·Zbl 0517.68032号 ·数字对象标识代码:10.1145/69575.69577
[23] Kleymann,T.:乐高验证计算的元理论——语法在多大程度上起作用?In:程序。证明和程序类型国际研讨会(Types’98)。LNCS,第1657卷,第133-148页。施普林格,纽约(1998)·Zbl 0942.68117号
[24] Lampson,B.W.,Redell,D.D.:在Mesa的流程和监控器方面的经验。Commun公司。ACM 23(2),105–117(1980)·数字对象标识代码:10.1145/358818.358824
[25] McCreight,A.、Shao,Z.、Lin,C.、Li,L.:验证垃圾收集器及其变异器的通用框架。In:程序。2007年ACM程序会议。语言设计与实施。,第468–479页。ACM,纽约(2007)
[26] Morrisett,G.,Walker,D.,Crary,K.,Glew,N.:从系统F到类型化汇编语言。In:程序。第25届ACM交响乐团。程序原则。兰格,第85-97页。ACM,纽约(1998)·Zbl 1110.68361号
[27] de Moura,L.M.,Dutertre,B.,Shankar,N.:可满足模理论教程。In:程序。第19届计算机辅助验证国际会议(CAV’07)。LNCS,第4590卷,第20-36页。施普林格,纽约(2007)·Zbl 1135.68563号
[28] Ni,Z.,Yu,D.,Shao,Z.:使用XCAP验证现实系统代码:机器上下文管理。In:程序。第20届国际高阶逻辑定理证明会议。LNCS,第4421卷,第189–206页。施普林格,纽约(2007)·Zbl 1144.68325号
[29] O'Hearn,P.W.:资源、并发和局部推理。In:程序。第15届并行理论国际会议(CONCUR’04)。LNCS,第3170卷,第49-67页。施普林格,纽约(2004)·Zbl 1099.68588号
[30] O’Hearn,P.W.,Yang,H.,Reynolds,J.C.:分离和信息隐藏。In:程序。第31届ACM交响乐团。程序原则。兰格,第268-280页。ACM,纽约(2004)·Zbl 1325.68069号
[31] Palsberg,J.,Ma,D.:一种类型化中断演算。In:程序。第七届国际交响乐团。实时容错系统中的形式化技术。(FTRTFT'02)。LNCS,第2469卷,第291-310页。斯普林格,纽约(2002)·Zbl 1278.68191号
[32] Paul,W.,Broy,M.,In der Rieden,T.:Verisoft XT项目。网址:http://www.verisoft.de (2007)
[33] Regehr,J.,Cooprider,N.:通过线程验证进行中断验证。电子。注释Theor。计算。科学。174(9) (2007)
[34] Reynolds,J.C.:分离逻辑:共享可变数据结构的逻辑。In:程序。第17届IEEE年会。论Comp.中的逻辑。科学。(LICS’02),第55-74页。IEEE计算机学会,Los Alamitos(2002)
[35] Suenaga,K.,Kobayashi,N.:具有中断的并发演算的基于类型的死锁分析。In:程序。第16届欧洲交响乐团。项目。(2007年员工持股计划)。LNCS,第4421卷,第490-504页。施普林格,纽约(2007)·Zbl 1187.68143号
[36] Tuch,H.,Klein,G.,Heiser,G.:操作系统验证–现在!In:程序。第十次操作系统热点研讨会,圣达菲,2005年6月12-15日
[37] Vafeiadis,V.,Parkinson,M.:一种依赖/保证和分离逻辑的婚姻。In:程序。第18届并行理论国际会议(CONCUR'07)。LNCS,第4703卷,第256-271页。施普林格,纽约(2007)·Zbl 1151.68556号
[38] Wright,A.K.,Felleisen,M.:类型健全性的句法方法。Inf.计算。115(1), 38–94 (1994) ·Zbl 0938.68559号 ·文件编号:10.1006/inco.1994.1093
[39] Yang,H.,O'Hearn,P.W.:局部推理的语义基础。In:程序。第五届软件科学和计算结构基础国际会议(FoSSaCS’02)。LNCS,第2303卷,第402-416页。斯普林格,纽约(2002)·Zbl 1077.68705号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。