Formal verification of concurrent data structures - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2022

Formal verification of concurrent data structures

Vérification formelle de structures de données concurrentes

Berk Cirisci
  • Fonction : Auteur
  • PersonId : 1301860
  • IdRef : 272877263

Résumé

Modern automated services rely on concurrent software where multiple requests are processed by different processes at the same time. These processes execute concurrently either in a single machine or in a distributed system with multiple machines built on top of a network. The requests are typically about processing data which is stored in data structures that provide implementations of common abstract data types (ADTs) such as queues, key-value stores, and sets. The data structures themselves are concurrent in the sense that they support operations that can execute concurrently at the same time. Developing such concurrent data structures or even understanding and reasoning about them can be tricky. This is coming from the fact that synchronization between operations of these data structures must be minimized to reduce response time and increase throughput, yet this minimal amount of synchronization must also be adequate to ensure conformance to their specification. These opposing statements, along with the general challenge in reasoning about interleavings between operations make concurrent data structures a ripe source of insidious programming errors that are difficult to reproduce, locate, or fix. Therefore, verification techniques that can check the correctness of a concurrent data structure or (if it is not correct) that can detect, pinpoint and fix the errors in it, are invaluable. In this thesis, we introduce new algorithmic approaches for improving the reliability of concurrent data structures. For shared-memory data structures (where processes communicate using a shared memory), we introduce new algorithms for finding safety violations (if any) and repairing the implementation in order to exclude these violations. For data structures running on top of a network, we focus on the underlying consensus protocols and provide a new proof methodology for checking their safety specification which is based on refinement.
Les services automatisés modernes reposent sur des logiciels concurrents où plusieurs demandes sont traitées par différents processus en même temps. Ces processus s'exécutent simultanément sur une seule machine ou dans un système distribué avec plusieurs machines reliés par un réseau. Les demandes concernent généralement le traitement de données stockées dans des structures de données qui fournissent des implémentations de types de données abstraits (ADT) courants tels que des files d'attente, des tables clé-valeur et des ensembles. Les structures de données elles-mêmes sont concurrentes dans le sens où elles permettent des opérations qui peuvent s'exécuter simultanément. Développer de telles structures de données concurrentes ou même les comprendre et raisonner dessus peut être difficile. Cela vient du fait que la synchronisation entre les opérations de ces structures de données doit être minimisée pour réduire le temps de réponse et augmenter le débit, mais cette synchronisation doit également être adéquate pour assurer la conformité à leur spécification. Ces contraintes qui s'opposent, ainsi que le défi général du raisonnement sur les entrelacements entre les opérations, font des structures de données concurrentes une source d'erreurs de programmation insidieuses, difficiles à reproduire, localiser ou corriger. Par conséquent, les techniques de vérification qui peuvent vérifier la correction d'une structure de données concurrente ou (si elle n'est pas correcte) qui peuvent détecter, identifier et corriger les erreurs qu'elle contient, sont très importantes. Dans cette thèse, nous introduisons de nouvelles approches algorithmiques pour améliorer la fiabilité des structures de données concurrentes. Pour les structures de données à mémoire partagée (où les processus communiquent à l'aide d'une mémoire partagée), nous introduisons de nouveaux algorithmes pour trouver les violations de sûreté (le cas échéant) et réparer l'implémentation afin d'exclure ces violations. Pour les structures de données qui m'exécutent au-dessus d'un réseau, nous nous concentrons sur les protocoles de consensus sous-jacents et nous fournissons une nouvelle méthodologie de preuve basée sur le raffinement pour vérifier leur spécification de sûreté.
Fichier principal
Vignette du fichier
va_Cirisci_Berk.pdf (3.81 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-04266066 , version 1 (31-10-2023)

Identifiants

  • HAL Id : tel-04266066 , version 1

Citer

Berk Cirisci. Formal verification of concurrent data structures. Data Structures and Algorithms [cs.DS]. Université Paris Cité, 2022. English. ⟨NNT : 2022UNIP7119⟩. ⟨tel-04266066⟩
40 Consultations
32 Téléchargements

Partager

Gmail Facebook X LinkedIn More