首页> 外文OA文献 >Formal Verification of Temporal Properties for Parametrized Concurrent Programs and Concurrent Data Structures
【2h】

Formal Verification of Temporal Properties for Parametrized Concurrent Programs and Concurrent Data Structures

机译:参数化并发程序和并发数据结构的时间属性的形式验证

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。
获取外文期刊封面目录资料

摘要

Los tipos de datos concurrentes son implementaciones concurrentes de las abstracciones de datos clásicas, con la diferencia de que han sido específicamente diseñados para aprovechar el gran paralelismo disponible en las modernas arquitecturas multiprocesador y multinúcleo. La correcta manipulación de los tipos de datos concurrentes resulta esencial para demostrar la completa corrección de los sistemas de software que los utilizan. Una de las mayores dificultades a la hora de diseñar y verificar tipos de datos concurrentes surge de la necesidad de tener que razonar acerca de un número arbitrario de procesos que invocan estos tipos de datos de manera concurrente. Esto requiere considerar sistemas parametrizados. En este trabajo estudiamos la verificación formal de propiedades temporales de sistemas concurrentes parametrizados, poniendo especial énfasis en programas que manipulan estructuras de datos concurrentes. La principal dificultad a la hora de razonar acerca de sistemas concurrentes parametrizados proviene de la interacción entre el gran nivel de concurrencia que éstos poseen y la necesidad de razonar al mismo tiempo acerca de la memoria dinámica. La verificación de sistemas parametrizados resulta en sí un problema desafiante debido a que requiere razonar acerca de estructuras de datos complejas que son accedidas y modificadas por un numero ilimitado de procesos que manipulan de manera simultánea el contenido de la memoria dinámica empleando métodos de sincronización poco estructurados. En este trabajo, presentamos un marco formal basado en métodos deductivos capaz de ocuparse de la verificación de propiedades de safety y liveness de sistemas concurrentes parametrizados que manejan estructuras de datos complejas. Nuestro marco formal incluye reglas de prueba y técnicas especialmente adaptadas para sistemas parametrizados, las cuales trabajan en colaboración con procedimientos de decisión especialmente diseñados para analizar complejas estructuras de datos concurrentes. Un aspecto novedoso de nuestro marco formal es que efectúa una clara diferenciación entre el análisis del flujo de control del programa y el análisis de los datos que se manejan. El flujo de control del programa se analiza utilizando reglas de prueba y técnicas de verificación deductivas especialmente diseñadas para lidiar con sistemas parametrizados. Comenzando a partir de un programa concurrente y la especificación de una propiedad temporal, nuestras técnicas deductivas son capaces de generar un conjunto finito de condiciones de verificación cuya validez implican la satisfacción de dicha especificación temporal por parte de cualquier sistema, sin importar el número de procesos que formen parte del sistema. Las condiciones de verificación generadas se corresponden con los datos manipulados. Estudiamos el diseño de procedimientos de decisión especializados capaces de lidiar con estas condiciones de verificación de manera completamente automática. Investigamos teorías decidibles capaces de describir propiedades de tipos de datos complejos que manipulan punteros, tales como implementaciones imperativas de pilas, colas, listas y skiplists. Para cada una de estas teorías presentamos un procedimiento de decisión y una implementación práctica construida sobre SMT solvers. Estos procedimientos de decisión son finalmente utilizados para verificar de manera automática las condiciones de verificación generadas por nuestras técnicas de verificación parametrizada. Para concluir, demostramos como utilizando nuestro marco formal es posible probar no solo propiedades de safety sino además de liveness en algunas versiones de protocolos de exclusión mutua y programas que manipulan estructuras de datos concurrentes. El enfoque que presentamos en este trabajo resulta ser muy general y puede ser aplicado para verificar un amplio rango de tipos de datos concurrentes similares. Abstract Concurrent data types are concurrent implementations of classical data abstractions, specifically designed to exploit the great deal of parallelism available in modern multiprocessor and multi-core architectures. The correct manipulation of concurrent data types is essential for the overall correctness of the software system built using them. A major difficulty in designing and verifying concurrent data types arises by the need to reason about any number of threads invoking the data type simultaneously, which requires considering parametrized systems. In this work we study the formal verification of temporal properties of parametrized concurrent systems, with a special focus on programs that manipulate concurrent data structures. The main difficulty to reason about concurrent parametrized systems comes from the combination of their inherently high concurrency and the manipulation of dynamic memory. This parametrized verification problem is very challenging, because it requires to reason about complex concurrent data structures being accessed and modified by threads which simultaneously manipulate the heap using unstructured synchronization methods. In this work, we present a formal framework based on deductive methods which is capable of dealing with the verification of safety and liveness properties of concurrent parametrized systems that manipulate complex data structures. Our framework includes special proof rules and techniques adapted for parametrized systems which work in collaboration with specialized decision procedures for complex data structures. A novel aspect of our framework is that it cleanly differentiates the analysis of the program control flow from the analysis of the data being manipulated. The program control flow is analyzed using deductive proof rules and verification techniques specifically designed for coping with parametrized systems. Starting from a concurrent program and a temporal specification, our techniques generate a finite collection of verification conditions whose validity entails the satisfaction of the temporal specification by any client system, in spite of the number of threads. The verification conditions correspond to the data manipulation. We study the design of specialized decision procedures to deal with these verification conditions fully automatically. We investigate decidable theories capable of describing rich properties of complex pointer based data types such as stacks, queues, lists and skiplists. For each of these theories we present a decision procedure, and its practical implementation on top of existing SMT solvers. These decision procedures are ultimately used for automatically verifying the verification conditions generated by our specialized parametrized verification techniques. Finally, we show how using our framework it is possible to prove not only safety but also liveness properties of concurrent versions of some mutual exclusion protocols and programs that manipulate concurrent data structures. The approach we present in this work is very general, and can be applied to verify a wide range of similar concurrent data types.
机译:并发数据类型是经典数据抽象的并发实现,区别在于它们是经过专门设计的,以利用现代多处理器和多核体系结构中可用的强大并行性。对并发数据类型的正确操作对于证明使用它们的软件系统的完全正确性至关重要。设计和验证并发数据类型的最大困难之一是必须推理任意数量的同时调用这些数据类型的进程。这需要考虑参数化系统。在这项工作中,我们研究了参数化并发系统的时间特性的形式验证,特别强调了处理并发数据结构的程序。推理参数化并发系统的主要困难在于它们的高并发级别与同时推理动态内存的需求之间的相互作用。验证参数化系统本身就是一个具有挑战性的问题,因为它需要推理复杂的数据结构,这些数据结构由无数个进程访问和修改,这些进程使用结构不良的同步方法同时操作动态内存内容。 。在本文中,我们提出了一个基于演绎方法的正式框架,该框架能够处理验证处理复杂数据结构的参数化并发系统的安全性和活动性。我们的正式框架包括专门适用于参数化系统的测试规则和技术,可与专门设计的决策程序协同工作以分析复杂的并发数据结构。我们的正式框架的一个新颖方面是,它在分析程序控制流和分析要处理的数据之间做出了明确的区分。使用测试规则和专门用于处理参数化系统的演绎验证技术来分析程序的控制流。从并发程序和时间属性的说明开始,我们的演绎技术能够生成有限的验证条件集,其有效性意味着任何系统都满足该时间说明的要求,而不考虑进程的数量是系统的一部分。生成的验证条件对应于操作数据。我们研究能够完全自动处理这些验证条件的专业决策程序的设计。我们研究了可决定的理论,这些理论能够描述操纵指针的复杂数据类型的属性,例如堆栈,队列,列表和跳过列表的命令式实现。对于这些理论中的每一种,我们都会介绍一个基于SMT求解器的决策程序和实际实现。这些决策程序最终用于自动验证由我们的参数化验证技术生成的验证条件。总而言之,我们演示了如何使用我们的正式框架在某些版本的互斥协议和操作并发数据结构的程序中,不仅可以测试安全性,还可以测试活动性。我们在本文中介绍的方法非常通用,可用于验证各种相似的并发数据类型。摘要并发数据类型是经典数据抽象的并发实现,经过特殊设计,旨在利用现代多处理器和多核体系结构中可用的大量并行性。对并发数据类型的正确操作对于使用它们构建的软件系统的整体正确性至关重要。设计和验证并发数据类型的主要困难是由于需要推理任意数量的线程同时调用数据类型而引起的,这需要考虑参数化的系统。在这项工作中,我们研究了参数化并发系统的时间特性的形式验证,特别关注处理并发数据结构的程序。对并发参数化系统进行推理的主要困难来自其固有的高并发性和动态内存操作的结合。这个参数化的验证问题非常具有挑战性,因为这需要推理复杂的并发数据结构被线程访问和修改,这些线程使用非结构化同步方法同时操作堆。在这项工作中,我们提出了一个基于演绎方法的正式框架,该框架能够处理对操作复杂数据结构的并发参数化系统的安全性和活动性进行验证。我们的框架包括适用于参数化系统的特殊证明规则和技术,这些参数和技术与复杂数据结构的专用决策程序协同工作。我们框架的一个新颖方面是,它将程序控制流的分析与对要处理的数据的分析完全区分开。使用专门设计用于应对参数化系统的演绎证明规则和验证技术来分析程序控制流程。从并发程序和时间规范开始,我们的技术会生成验证条件的有限集合,尽管线程数量众多,但其有效性要求任何客户端系统都必须满足时间规范。验证条件对应于数据操作。我们研究专门决策程序的设计,以完全自动地处理这些验证条件。我们研究了能够描述基于复杂指针的数据类型(例如堆栈,队列,列表和跳过列表)的丰富属性的可判定理论。对于这些理论中的每一种,我们都会在现有SMT求解器的基础上提出决策程序及其实际实现。这些决策程序最终用于自动验证由我们专用的参数化验证技术生成的验证条件。最后,我们展示了如何使用我们的框架不仅可以证明安全性,而且可以证明某些互斥协议和操作并发数据结构的程序的并发版本的活动性。我们在本文中介绍的方法非常通用,可用于验证各种相似的并发数据类型。

著录项

  • 作者

    Sánchez Alejandro;

  • 作者单位
  • 年度 2015
  • 总页数
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号