Repository logo
  • Log In
    Log in via Symplectic to deposit your publication(s).
Repository logo
  • Communities & Collections
  • Research Outputs
  • Statistics
  • Log In
    Log in via Symplectic to deposit your publication(s).
  1. Home
  2. Faculty of Engineering
  3. Computing
  4. Computing PhD theses
  5. Orca: Ownership and Reference Count Collection for Actors
 
  • Details
Orca: Ownership and Reference Count Collection for Actors
File(s)
Vicente-Franco-J-2018-PhD-Thesis.pdf (4.7 MB)
Thesis
Author(s)
Vicente Franco, Juliana Patricia
Type
Thesis or dissertation
Abstract
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.
Version
Open Access
Date Issued
2018-08
Date Awarded
2019-02
URI
http://hdl.handle.net/10044/1/67952
DOI
https://doi.org/10.25560/67952
Copyright Statement
Creative Commons Attribution NonCommercial No Derivatives Licence
Advisor
Drossopoulou, Sophia
Eisenbach, Susan
Sponsor
European Union
Engineering and Physical Sciences Research Council
Grant Number
EP/K011715/1
Publisher Department
Department of Computing
Publisher Institution
Imperial College London
Qualification Level
Doctoral
Qualification Name
Doctor of Philosophy (PhD)
About
Spiral Depositing with Spiral Publishing with Spiral Symplectic
Contact us
Open access team Report an issue
Other Services
Scholarly Communications Library Services
logo

Imperial College London

South Kensington Campus

London SW7 2AZ, UK

tel: +44 (0)20 7589 5111

Accessibility Modern slavery statement Cookie Policy

Built with DSpace-CRIS software - Extension maintained and optimized by 4Science

  • Cookie settings
  • Privacy policy
  • End User Agreement
  • Send Feedback