Time-Predictable Dynamic Memory Management for Java Based on Reference Counting

Show simple item record

dc.contributor.advisor Biglari-Abhari, M en
dc.contributor.advisor Salcic, Z en
dc.contributor.author Harvey-Lees-Green, NG en
dc.date.accessioned 2020-06-01T19:19:24Z en
dc.date.issued 2020 en
dc.identifier.uri http://hdl.handle.net/2292/50946 en
dc.description.abstract Certain types of computer systems, hard real-time safety-critical systems, must be able to guarantee their correct operation. Any incorrect actions potentially lead to injury or substantial property damage. These systems must function correctly and they have to prove that they do so within a specified time. Attesting that these hard real-time systems are timely necessitates static analysis of their executing code. Usual approaches to Garbage Collector (GC), a powerful tool that makes the code simpler to develop and safer, complicate the timing analysis. This work suggests a different approach, performing a system’s memory management tasks in a separate hardware unit, the Reference Counting Unit (RCU), thereby simplifying static analysis and improving worst-case performance. This thesis presents both the concepts and specific memory models underpinning the RCU, and how they relate to Java (the programming language targeted). Because the RCU implements a reference counting GC algorithm, special consideration must go to how the unit handles certain data structures. Avoiding fragmentation of the heap is a priority; the types of system that this work targets expect to be in operation for long periods of time. Use of an RCU compatible collector changes the analysis of a system’s execution time; the affected set of operations no longer complete within a constant length of time. That necessitates a change in how the bytecode, the compiled form of Java, is analysed. Multiple implementations of the RCU concept have been tested. The first, the Reference Counting Memory Management Unit (RCMMU), targets single-core designs and its effectiveness validates the idea. The second, the Extended Reference Counting Memory Management Unit (XRCMMU), also targets single-core applications and adds a Heap Access Unit (HAU), completing the same benchmark in 25% of the time for an RCMMU-based system. Investigations have looked at multi-core options; different core topologies have their own impacts on how the data relating to in-use and collectable objects can be kept accurate. Of those, the Time-Division Multiple Access Reference Counting Memory Management Unit (TDMA-RCMMU) is developed further and shows strong performance, completing one benchmark 3.7 times faster when utilising four cores instead of one. en
dc.publisher ResearchSpace@Auckland en
dc.relation.ispartof PhD Thesis - University of Auckland en
dc.relation.isreferencedby UoA en
dc.rights Items in ResearchSpace are protected by copyright, with all rights reserved, unless otherwise indicated. Previously published items are made available in accordance with the copyright policy of the publisher. en
dc.rights.uri https://researchspace.auckland.ac.nz/docs/uoa-docs/rights.htm en
dc.rights.uri http://creativecommons.org/licenses/by-nc-sa/3.0/nz/ en
dc.title Time-Predictable Dynamic Memory Management for Java Based on Reference Counting en
dc.type Thesis en
thesis.degree.discipline Electrical and Electronic Engineering en
thesis.degree.grantor The University of Auckland en
thesis.degree.level Doctoral en
thesis.degree.name PhD en
dc.rights.holder Copyright: The author en
dc.rights.accessrights http://purl.org/eprint/accessRights/OpenAccess en
pubs.elements-id 802932 en
pubs.record-created-at-source-date 2020-06-02 en
dc.identifier.wikidata Q112952266


Files in this item

Find Full text

This item appears in the following Collection(s)

Show simple item record

Share

Search ResearchSpace


Browse

Statistics