...
首页> 外文期刊>Logical Methods in Computer Science >Software Model Checking with Explicit Scheduler and Symbolic Threads
【24h】

Software Model Checking with Explicit Scheduler and Symbolic Threads

机译:使用显式调度程序和符号线程进行软件模型检查

获取原文
           

摘要

In many practical application domains, the software is organized into a setof threads, whose activation is exclusive and controlled by a cooperativescheduling policy: threads execute, without any interruption, until they eitherterminate or yield the control explicitly to the scheduler. The formal verification of such software poses significant challenges. On theone side, each thread may have infinite state space, and might call forabstraction. On the other side, the scheduling policy is often important forcorrectness, and an approach based on abstracting the scheduler may result inloss of precision and false positives. Unfortunately, the translation of theproblem into a purely sequential software model checking problem turns out tobe highly inefficient for the available technologies. We propose a software model checking technique that exploits the intrinsicstructure of these programs. Each thread is translated into a separatesequential program and explored symbolically with lazy abstraction, while theoverall verification is orchestrated by the direct execution of the scheduler.The approach is optimized by filtering the exploration of the scheduler withthe integration of partial-order reduction. The technique, called ESST (Explicit Scheduler, Symbolic Threads) has beenimplemented and experimentally evaluated on a significant set of benchmarks.The results demonstrate that ESST technique is way more effective than softwaremodel checking applied to the sequentialized programs, and that partial-orderreduction can lead to further performance improvements.
机译:在许多实际应用领域中,软件被组织为一组线程,其激活是排他性的,并由合作调度策略控制:线程在不中断的情况下执行,直到终止或将控制权明确交付给调度程序为止。这种软件的形式验证提出了重大挑战。一方面,每个线程可能具有无限的状态空间,并且可能会要求抽象。另一方面,调度策略通常对于正确性很重要,基于抽象调度器的方法可能会导致精度损失和误报。不幸的是,对于现有技术而言,将问题转换为纯粹的顺序软件模型检查问题的效率非常低。我们提出了一种利用这些程序的固有结构的软件模型检查技术。每个线程被翻译成一个单独的顺序程序,并用惰性抽象进行象征性地探索,而总的验证则由调度程序的直接执行来进行。通过对调度程序的探索进行过滤,并结合部分顺序约简,对方法进行了优化。该技术被称为ESST(显式调度程序,符号线程),已在一组重要的基准上进行了实验并进行了评估,结果表明ESST技术比应用于顺序化程序的软件模型检查更有效,并且偏序减少可以导致进一步改善性能。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号