×

证明微内核调度器的公平性和实现正确性。 (英语) Zbl 1191.68409号

摘要:我们报告了微内核关键属性的形式化证明,即它的多优先级进程调度器保证了进度,即强公平性。证明体系结构将系统跟踪集上的一层行为推理与用C编写的具体、相当现实的实现联系起来。我们的微内核为内存虚拟化、与硬件设备的通信提供了基础设施,用于进程(表示为一系列汇编指令,这些指令在底层正式定义的处理器上并发执行),以及通过同步消息传递进行进程间通信(IPC)。内核根据IPC和计时器事件建立进程切换;然而,进程切换的调度遵循优先级的层次结构,例如,系统进程优先于应用进程,而不是维护进程。除了在Isabelle/HOL中开发的相当重要的模型以及它们之间关系的正式澄清之外,我们还详细分析了微内核对关键成分(硬件、计时器、机器相关代码)施加的形式化要求,以建立整个系统的正确操作。在方法论方面,我们展示了早期建模和后期验证对我们的项目有多大帮助。

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
68N25号 操作系统理论
第68页第15页 定理证明(演绎、解析等)(MSC2010)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Alkassar,E.,Hillebrand,M.A.:设备驱动程序的正式功能验证。收录:Woodcock,J.,Shankar,N.(编辑)验证软件:理论、工具和实验。LNCS,第5295卷,第225-239页。施普林格,纽约(2008)
[2] Alkassar,E.,Hillebrand,M.A.,Leinenbach,D.,Schirmer,N.W.,Starostin,A.:Verisoft系统验证方法。收录:Shankar,N.、Woodcock,J.(编辑)《验证软件:理论、工具和实验》。LNCS,第5295卷,第209-224页。施普林格,纽约(2008)
[3] Alkassar,E.,Hillebrand,M.A.,Leinenbach,D.C.,Schirmer,N.W.,Starostin,A.,Tsyban,A.:平衡负载——利用语义堆栈进行系统验证。J.自动化。推理,操作系统验证专刊(2009)。doi:10.1007/s10817-009-9123-z·Zbl 1191.68407号
[4] Alkassar,E.,Schirmer,N.,Starostin,A.:分页机制的形式化普遍验证。包含:TACAS。LNCS,第4963卷,第109-123页。施普林格,纽约(2008)·Zbl 1134.68394号
[5] 安德鲁斯,P.B.:《数理逻辑和类型理论导论:通过证明实现真理》。Kluwer,Dordrecht(2002)·Zbl 1002.03002号
[6] Barnett,M.,Chang,B.Y.E.,DeLine,R.,Jacobs,B.,Leino,K.R.M.:Boogie:面向对象程序的模块化可重用验证器。摘自:de Boer,F.S.,Bonsangue,M.M.,Graf,S.,de Roever,W.P(编辑)《组件和对象的形式方法:第四届国际研讨会》,FMCO 2005。LNCS,第4111卷,第364-387页。施普林格,纽约(2006)
[7] Basin,D.A.、Kuruma,H.、Miyazaki,K.、Takaragi,K.和Wolff,B.:验证签名架构:比较案例研究。表Asp。计算。19(1), 63–91 (2007) ·Zbl 1111.68075号 ·doi:10.1007/s00165-006-0012-5
[8] Bevier,W.R.:Kit和短堆栈。J.自动化。原因。5(4),519–530(1989)
[9] Bevier,W.R.、Hunt,W.A.,Jr.、Moore,J S.、Young,W.D.:系统验证方法。J.自动化。原因。5(4), 411–428 (1989)
[10] Beyer,S.、Jacobi,C.、Kröning,D.、Leinenbach,D.、Paul,W.J.:将所有内容放在一起:VAMP的正式验证。STTT 8(4-5),411-430(2006)·Zbl 05075105号 ·doi:10.1007/s10009-006-0204-6
[11] Böhme,S.,Leino,K.R.M.,Wolff,B.:HOL布吉——布吉程序验证器的交互式证明器。收录:Mohamed,O.A.,Muñoz,C.,Tahar,S.(编辑)TPHOL。LNCS,第5170卷,第150-166页。施普林格,纽约(2008)·Zbl 1165.68399号
[12] Brock,B.,Kaufmann,M.,Moore,J S.:关于商用微处理器的ACL2定理。收录于:FMCAD,第275-293页。施普林格,纽约(1996)
[13] Church,A.:简单类型理论的表述。J.塞姆。日志。5(2), 56–68 (1940) ·Zbl 0023.28901号 ·doi:10.2307/2266170
[14] Cock,D.、Klein,G.、Sewell,T.:安全的微内核、状态单体和可扩展的精细化。收录:Mohamed,O.A.,Muñoz,C.,Tahar,S.(编辑)TPHOL。LNCS,第5170卷,第167-182页。施普林格,纽约(2008)·Zbl 1165.68454号
[15] Cohen,E.,Moskal,M.,Schulte,W.,Tobies,S.:一个精确而有效的C记忆模型(2008)。http://research.microsoft.com/apps/pubs/default.aspx?id=77174
[16] Daum,M.,Dörrenbächer,J.,Wolff,B.,Schmidt,M.:系统级并发程序的验证方法。摘自:Woodcock,J.,Shankar,N.(编辑)《验证软件:理论、工具和实验》。LNCS,第5295卷,第161-176页。施普林格,纽约(2008)
[17] Elphinstone,K.,Greenaway,D.,Ruocco,S.:懒惰的调度和直接流程切换——优点还是谬误?In:嵌入式实时应用程序操作系统平台研讨会。意大利比萨(2007年)。http://www.ertos.nicta.com.au/publications/papers/Elphinstone_GR_07.pdf
[18] Engler,D.R.,Kaashoek,M.F.,O'Toole,J.:Exockernel:应用程序级资源管理的操作系统架构。收录于:SOSP,第251-266页。ACM,纽约(1995)
[19] Fagin,R.,Williams,J.H.:公平拼车调度算法。IBM J.Res.Develop公司。27(2), 133–139 (1983) ·数字对象标识代码:10.1147/rd.272.0133
[20] Filliátre,J.C.,Marché,C.:演绎程序验证的why/Krakatoa/Caduceus平台。收录于:CAV,第173-177页,柏林,2007年7月3-7日
[21] Fleisch,B.D.,Co,M.A.A.:工作场所微内核和操作系统:案例研究。柔和。实践。实验28(6),569–591(1998)·Zbl 05470504号 ·doi:10.1002/(SICI)1097-024X(199805)28:6<569::AID-SPE158>3.0.CO;2-U型
[22] Fox,A.C.J.:ARM6的正式规范和验证。收录:TPHOL,第25-40页,罗马,2003年9月8-12日
[23] 弗朗切斯:公平。施普林格,纽约(1986)
[24] Heckmann,R.,Ferdinand,C.:通过静态程序分析预测最坏情况下的执行时间。白皮书,AbsInt Angewandte Informatik GmbH(2004)。http://www.absint.com/wcet.htm
[25] Heiser,G.,Elphinstone,K.,Kuz,I.,Klein,G.,Petters,S.M.:走向值得信赖的计算系统:将微内核提升到一个新的水平。操作。系统。版本41(4),3-11(2007)·Zbl 05445995号 ·数字对象标识代码:10.1145/1278901.1278904
[26] Hillebrand,M.A.,Paul,W.J.:关于系统验证环境的架构。摘自:海法核查会议,第153-168页。施普林格,纽约(2007)
[27] 在der Rieden,T.和Tsyban,A.中:CVM——一个为微内核程序员验证的框架。In:系统软件验证。ENTCS,第217卷,第151-168页。Elsevier Science B.V.,阿姆斯特丹(2008)
[28] Kaiser,R.:将分区和虚拟化结合起来用于安全关键型系统。白皮书WP_CPV_10_A4_R10,SYSGO AG(2007)。http://www.sysgo.com/news-events/白皮书/
[29] Klein,G.:操作系统验证–概述。收录于:《萨达纳》,第34卷,第1期,第27-69页。施普林格(2009)·Zbl 1192.68432号
[30] Knapp,S.,Paul,W.:普遍系统验证背景下的现实最坏情况执行时间分析。收录:Reps,T.、Sagiv,M.、Bauer,J.(编辑)《程序分析与编译,理论与实践:在莱因哈德·威廉60岁生日之际献给他的论文》。计算机科学课堂讲稿,第4444卷,第53-81页。施普林格,纽约(2007年)。http://www.verisoft.de/.rsrc/PublikationSeite/KP06.pdf ·Zbl 1149.68405号
[31] Leinenbach,D.:普遍系统验证背景下的编译器验证。萨尔州大学博士论文(2008年)。http://www-wjp.cs.uni-sb.de/publikationen/Lei08.pdf
[32] Leinenbach,D.,Paul,W.J.,Petrova,E.:面向C0编译器的形式验证:代码生成和实现正确性。收录于:SEFM,第2-12页。IEEE计算机学会,Los Alamitos(2005)
[33] Liedtke,J.:通过内核设计改进IPC。摘自:SOSP,第175-188页。ACM,纽约(1993)
[34] Liedtke,J.:关于{\(\mu\)}-内核构造。摘自:SOSP,第237-250页。ACM,纽约(1995)
[35] Liedtke,J.:走向真正的微内核。Commun公司。ACM 39(9),70–77(1996)·doi:10.145/234215.234573
[36] Moore,J S.:形式化方法的一个重大挑战提案:一个经过验证的堆栈。载于:联合国大学/研究所十周年学术讨论会,第161-172页。斯普林格,纽约(2002)
[37] Moore,J S.,Lynch,T.W.,Kaufmann,M.:AMD5K86TM浮点除法程序的机械检查证明。IEEE传输。计算。47(9), 913–926 (1998) ·doi:10.1109/12.713311
[38] Ni,Z.,Yu,D.,Shao,Z.:使用XCAP验证现实系统代码:机器上下文管理。输入:TPHOL。LNCS,第4732卷,第189-206页。施普林格,纽约(2007)·Zbl 1144.68325号
[39] Nipkow,T.、Paulson,L.C.、Wenzel,M.:Isabelle/HOL:高阶逻辑的证明助手。LNCS,第2283卷。斯普林格,纽约(2002)·Zbl 0994.68131号
[40] Petters,S.M.,Zadarnowski,P.,Heiser,G.:测量或静态分析或两者兼而有之?收录:Rochange,C.(编辑)WCET。达格斯图尔研讨会论文集,第07002卷。Internationales Begegnungs-und Forschungszentrum für Informatik(IBFI),德国达格斯图尔宫(2007)
[41] Rashid,R.、Avadis Tevanin,J.、Young,M.、Golub,D.、Baron,R.:分页单处理器和多处理器体系结构的机器相关虚拟内存管理。IEEE传输。计算。37(8), 896–908 (1988) ·doi:10.109/12.2242
[42] Ruocco,S.:实时编程和L4微内核。参加:嵌入式实时应用程序操作系统平台研讨会,德国德累斯顿(2006)。http://www.ertos.nicta.com.au/publications/papers/Ruocco_06.pdf .
[43] Samman,T.:验证50000行C代码。《未来》,微软欧洲创新杂志,第21卷。Microsoft Corporate Affairs Europe,布鲁塞尔(2008)
[44] Schirmer,N.:Isabelle/HOL中顺序命令程序的验证环境。输入:LPAR。LNCS,第398–414页。Springer,纽约(2005年)。http://isabelle.in.tum.de/\(\sim\)schirmer/pub/hore-lpar04.html·Zbl 1108.68410号
[45] Schirmer,N.:Isabelle/HOL中顺序命令程序的验证。慕尼黑大学博士论文(2006)·Zbl 1108.68410号
[46] Shapiro,J.、Doeriry,M.S.、Northup,E.、Sridhar,S.、Miller,M.:走向一个经过验证的通用操作系统内核。In:FM操作系统验证研讨会。技术代表0401005T-1,第1-19页。澳大利亚国家信息通信技术协会(2004年)。http://www.coyotos.org/docs/osverify-2004/osverify-2004.pdf
[47] Singal,M.,Petters,S.M.:为WCET分析L4的问题。在:嵌入式系统微内核研讨会,澳大利亚悉尼。http://www.ertos.nicta.com.au/publications/papers/Singal_Petters_07.pdf (2007)
[48] Starostin,A.,Tsyban,A.:正确的微内核原语。In:系统软件验证。ENTCS,第217卷,第169-185页。Elsevier Science B.V.,阿姆斯特丹(2008)
[49] Starostin,A.,Tsyban,A.:C编程内核的验证过程控制开关。收录:Shankar,N.、Woodcock,J.(编辑)《验证软件:理论、工具和实验》。LNCS,第5295卷,第240–254页。施普林格,纽约(2008)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。