We describe a new CSeq module that implements improved algorithms for the verification of multi-threaded C programs with dynamic thread creation. It is based on sequentializing the programs according to a guessed sequence of write operations in the shared memory (memory unwinding, MU). The original algorithm (implemented in MU-CSeq 0.1) stores the values of all shared variables for each write (read-explicit fine-grained MU), which requires multiple copies of the shared variables. Our new algorithms store only the writes (read-implicit MU) or only a subset of the writes (coarse-grained MU), which reduces the memory footprint of the unwinding and so allows larger unwinding bounds.
|Titolo:||MU-CSeq 0.3: Sequentialization by Read-Implicit and Coarse-Grained Memory Unwindings|
|Data di pubblicazione:||2015|
|Appare nelle tipologie:||4.1 Contributo in Atti di convegno|