On Sequentializing Concurrent Programs
Résumé
We propose a general framework for compositional under-approximate concurrent program analyses by reduction to sequential program analyses|so-called sequentializations. We notice the existing sequentializations|based on bounding the number of execution contexts, execution rounds, or delays from a deterministic task-schedule|rely on three key features for scalable concurrent program analyses: (i) reduction to the sequential program model, (ii) compositional reasoning to avoid expensive task-product constructions, and (iii) parameterized exploration bounds. To understand how those sequentializations can be uni ed and generalized, we de ne a general framework which preserves their key features, and in which those sequentializations are particular instances. We also identify a most general instance which considers vastly more executions, by composing the rounds of di erent tasks in any order, restricted only by the unavoidable program and task-creation causality orders. In fact, we show this general instance is fundamentally more powerful by identifying an in nite family of state-reachability problems (to states g1; g2; : : :) which can be answered precisely with a xed exploration bound, whereas the existing sequentializations require an increasing bound k to reach each gk. Our framework applies to a general class of shared-memory concurrent programs, with dynamic task-creation and arbitrary preemption.
Domaines
Performance et fiabilité [cs.PF]
Origine : Fichiers produits par l'(les) auteur(s)
Loading...