Orca: Ownership and Reference Count Collection for Actors

Orca is a novel garbage collection protocol for actor-based, object-oriented programming languages for multicore machines. It supports fully concurrent garbage collection, where an actor can trigger garbage collection at any time without synchronising with any other actor. It does so while supportin...

Full description

Bibliographic Details
Main Author: Vicente Franco, Juliana Patricia
Other Authors: Drossopoulou, Sophia, Eisenbach, Susan, European Union, Engineering and Physical Sciences Research Council
Format: Doctoral or Postdoctoral Thesis
Language:unknown
Published: Imperial College London 2019
Subjects:
Online Access:http://hdl.handle.net/10044/1/67952
https://doi.org/10.25560/67952
id ftimperialcol:oai:spiral.imperial.ac.uk:10044/1/67952
record_format openpolar
spelling ftimperialcol:oai:spiral.imperial.ac.uk:10044/1/67952 2023-05-15T17:52:57+02:00 Orca: Ownership and Reference Count Collection for Actors Vicente Franco, Juliana Patricia Drossopoulou, Sophia Eisenbach, Susan European Union Engineering and Physical Sciences Research Council 2019-02 http://hdl.handle.net/10044/1/67952 https://doi.org/10.25560/67952 unknown Imperial College London Department of Computing Creative Commons Attribution NonCommercial No Derivatives Licence CC-BY-NC-ND Thesis or dissertation Doctoral Doctor of Philosophy (PhD) 2019 ftimperialcol https://doi.org/10.25560/67952 2019-11-14T23:39:19Z Orca is a novel garbage collection protocol for actor-based, object-oriented programming languages for multicore machines. It supports fully concurrent garbage collection, where an actor can trigger garbage collection at any time without synchronising with any other actor. It does so while supporting copy-less message passing and sharing of mutable state. By leveraging a type system’s guarantees of actor isolation, Orca can perform GC fully concurrently, without any form of barrier synchronisation in mutator threads, as commonly found in state-of-the-art concurrent collectors. Although Orca has been successfully implemented in Pony and in Encore, it had never been evaluated nor proven correct. Indeed, these are the two main contributions of this thesis. In this thesis, we model Orca and prove that it will never collect reachable objects (i.e., execution of programs managed by Orca will never result in dangling pointers) and that it will eventually deallocate all unreachable objects (i.e., execution of programs managed by Orca will never result in memory leaks). We model Orca in three steps: firstly, we define a set of requirements that must be ensured by the host language; secondly, assuming these requirements are in place, we model all the garbage collection related operations atomically; and thirdly, we extend our model to take into consideration that, in fact, in a fully concurrent system every instruction is interleaved with the execution of other operations. Moreover, we evaluate Orca ’s performance by measuring scalability, footprint, responsiveness and its overhead in the execution of a program. We perform this evaluation in the context of Pony, the language with which Orca was co-designed, and compare it against the JVM, BEAM and Boehm-Demers-Weiser. Open Access Doctoral or Postdoctoral Thesis Orca Imperial College London: Spiral
institution Open Polar
collection Imperial College London: Spiral
op_collection_id ftimperialcol
language unknown
description Orca is a novel garbage collection protocol for actor-based, object-oriented programming languages for multicore machines. It supports fully concurrent garbage collection, where an actor can trigger garbage collection at any time without synchronising with any other actor. It does so while supporting copy-less message passing and sharing of mutable state. By leveraging a type system’s guarantees of actor isolation, Orca can perform GC fully concurrently, without any form of barrier synchronisation in mutator threads, as commonly found in state-of-the-art concurrent collectors. Although Orca has been successfully implemented in Pony and in Encore, it had never been evaluated nor proven correct. Indeed, these are the two main contributions of this thesis. In this thesis, we model Orca and prove that it will never collect reachable objects (i.e., execution of programs managed by Orca will never result in dangling pointers) and that it will eventually deallocate all unreachable objects (i.e., execution of programs managed by Orca will never result in memory leaks). We model Orca in three steps: firstly, we define a set of requirements that must be ensured by the host language; secondly, assuming these requirements are in place, we model all the garbage collection related operations atomically; and thirdly, we extend our model to take into consideration that, in fact, in a fully concurrent system every instruction is interleaved with the execution of other operations. Moreover, we evaluate Orca ’s performance by measuring scalability, footprint, responsiveness and its overhead in the execution of a program. We perform this evaluation in the context of Pony, the language with which Orca was co-designed, and compare it against the JVM, BEAM and Boehm-Demers-Weiser. Open Access
author2 Drossopoulou, Sophia
Eisenbach, Susan
European Union
Engineering and Physical Sciences Research Council
format Doctoral or Postdoctoral Thesis
author Vicente Franco, Juliana Patricia
spellingShingle Vicente Franco, Juliana Patricia
Orca: Ownership and Reference Count Collection for Actors
author_facet Vicente Franco, Juliana Patricia
author_sort Vicente Franco, Juliana Patricia
title Orca: Ownership and Reference Count Collection for Actors
title_short Orca: Ownership and Reference Count Collection for Actors
title_full Orca: Ownership and Reference Count Collection for Actors
title_fullStr Orca: Ownership and Reference Count Collection for Actors
title_full_unstemmed Orca: Ownership and Reference Count Collection for Actors
title_sort orca: ownership and reference count collection for actors
publisher Imperial College London
publishDate 2019
url http://hdl.handle.net/10044/1/67952
https://doi.org/10.25560/67952
genre Orca
genre_facet Orca
op_rights Creative Commons Attribution NonCommercial No Derivatives Licence
op_rightsnorm CC-BY-NC-ND
op_doi https://doi.org/10.25560/67952
_version_ 1766160715888984064