Write a Blog >>
Sun 22 - Fri 27 October 2017 Vancouver, Canada
Wed 25 Oct 2017 14:37 - 15:00 at Regency A - Gradual Types and Memory Chair(s): Jennifer B. Sartor

Modern concurrent copying garbage collection (GC), especially real-time GC, employ fine-grain synchronisations with mutators, which are application programs that mutate memory, when they move objects in their copy phases. They resolve a data-race using concurrent copying protocols, which are implemented as interactions between the collectors and the read and write barriers that the mutators execute. Behavioural effects of the concurrent copying protocol relies on the memory model of the CPUs and the programming languages in which the GC is implemented. It is hard, however, to formally investigate behavioural properties of concurrent copying protocols against various memory models.

To address this problem, we studied the feasibility of bounded model checking of concurrent copying protocols with memory models. We investigated a correctness-related behavioural property of copying protocols of various concurrent copying GC algorithms including real-time GC Stopless, Clover, Chicken, Staccato, and Schism against six memory models, TSO, PSO, RMO, and their variants as well as sequential consistency by using bounded model checking. For each combination of a protocol and a memory model, we conducted model checking with a model of a mutator. In this wide range of case studies, we found faults in two GC algorithms, one of which is relevant to the memory model. We fixed these faults with great help of counterexamples. We also modified some protocols so that they works correctly under some memory models weaker than the ones that the original protocols are designed for, and checked them by using model checking. We believe that bounded model checking is a feasible approach to investigate behavioural properties of concurrent copying protocols under weak memory models.