【24h】

A Scalable Memory Model for Low-Level Code

机译:低级代码可扩展内存模型

获取原文

摘要

Because of its critical importance underlying all other software, low-level system software is among the most important targets for formal verification.Low-level systems software must sometimes make type-unsafe memory accesses,but because of the vast size of available heap memory in today's computer sys-tems, faithfully representing each memory allocation and access does not scalewhen analyzing large programs. Instead, verification tools rely on abstract mem-ory models to represent the program heap. This paper reports on two related in-vestigations to develop an accurate (i.e., providing a useful level of soundnessand precision) and scalable memory model: First, we compare a recently intro-duced memory model, specifically designed to more accurately model low-levelmemory accesses in systems code, to an older, widely adopted memory model.Unfortunately, we find that the newer memory model scales poorly compared tothe earlier, less accurate model. Next, we investigate how to improve the sound-ness of the less accurate model. A direct approach is to add assertions to the codethat each memory access does not break the assumptions of the memory model,but this causes verification complexity to blow-up. Instead, we develop a novel,extremely lightweight static analysis that quickly and conservatively guaranteesthat most memory accesses safely respect the assumptions of the memory model,thereby eliminating almost all of these extra type-checking assertions. Further-more, this analysis allows us to create automatically memory models that flexiblyuse the more scalable memory model for most of memory, but resorting to a moreaccurate model for memory accesses that might need it.
机译:由于其所有其他软件的重要意义,低级系统软件是正式验证的最重要目标.LOW级系统软件有时必须使类型不安全的内存访问,但由于占用堆积的大尺寸可用堆内存今天的计算机系统,忠实地代表每个内存分配和访问不展示分析大型程序。相反,验证工具依赖于抽象的MEM-ORY模型来表示程序堆。本文有关两种相关的味道,可以提出准确(即提供有用的Soundness和Precision水平)和可缩放的内存模型:首先,我们比较最近介绍的内存模型,专门设计为更准确地模拟低级别频率在系统代码中访问,到较旧的,广泛采用的内存模型。不幸的是,我们发现较新的记忆模型比较比较较差,更准确的模型。接下来,我们调查如何改善较低的模型的声音。直接方法是向CodeThat添加断言,每个内存访问都不会破坏存储器模型的假设,但这会导致验证复杂性爆炸。相反,我们开发了一种新颖的,极轻的静态分析,即大多数内存的快速和保守地保证了大多数内存访问,安全地尊重存储器模型的假设,从而消除了几乎所有这些额外类型的检查断言。更重要的是,此分析允许我们创建自动的内存模型,以为大多数内存灵活使用更可扩展的内存模型,但诉诸可能需要它的内存访问的Moreacurate模型。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号