School of Computing

Publications GC bibliography GC page GC books Programming Languages and Systems Group

Richard Jones

Professor of Computer Systems

Photo of RE Jones, if available
  • Room SW107
    School of Computing
    University of Kent,
    CT2 7NF
Honorary Fellow, University of Glasgow
Distinguished Scientist, ACM
 

I am Professor of Computer Systems in the School of Computing at the University of Kent. I was made a Distinguished Scientist of the ACM in 2006, and an Honorary Fellow of the University of Glasgow in July 2005, the only computer scientist to have received this accolade. I have received IBM Faculty Awards in 2003, 2004 and 2005. I am the Science Faculty Director of Research and Enterprise, and a member of the Programming Languages and Systems Research Group.

2009 Dart 18 World Champions, Emmanuel
Dodé and Fred Moreau Outside work, I'm a keen sailor. I race a Dart 18 catamaran at Whitstable. Check out this fantastic video of the AC45s racing in Plymouth - crazy stuff. I want one!



Teaching

I teach on a number of programming languages and systems modules, mostly postgraduate. Currently I contribute to courses on Java programming, systems architecture, and concurrency and parallelism.

Research Interests


GC logo

My chief area of interest is dynamic memory management - this grew out of work on lazy functional programming languages and particularly their efficient implementation.

I am particularly keen to hear from potential research students with interests in memory management.

My new book The Garbage Collection Handbook: the art of automatic memory management, Richard Jones, Antony Hosking and Eliot Moss, Chapman and Hall, 2011, is now in print.
This considerably extends my earlier Garbage Collection book, in particular with complete and up-to-date coverage of parallel, concurrent, and real-time garbage collection algorithms, and explanations of some of the tricky aspects of garbage collection, including the interface to the run-time system.

Garbage Collection for Multicore Systems

MirrorGC logo The EPSRC-funded MirrorGC project started in September 2010. My co-investigator is Fred Barnes, an expert in the implementation of concurrent systems. Tomas Kalibera is the post-doc, who has a wealth of experience in automatic memory management for real-time and embedded systems, virtual machines for these systems in general, and verification of applications for these systems. Our research student is Matthew Mole. Much of the initial and continuing research for this project is due to Laurence Hellyer.

Novel Garbage Collection Algorithms

Beltway diagramThe Beltway framework of collectors, developed with colleagues at the Australian National University and the Universities of Massachussetts and Texas, not only generalises existing copying collectors but also makes possible the design of new collectors that outperform state of the art generational copying collectors.

LACE diagram The Lifetime Aware GC (LACE) project builds on Beltway to provide a novel GC framework that can flexibly exploit object lifetime analysis yet tolerates imprecision.

Thread-local GC diagramWith Andy King, I developed a new static analysis and a novel GC framework that allows truely independent collection of thread-local heaps. In contrast to previous work, our solution safely classifies objects even in the presence of dynamic class loading, requires neither write-barriers that may do unbounded work, nor synchronisation, nor locks during thread-local collections; our analysis is sufficiently fast to permit its integration into a high-performance, production-quality virtual machine.

 

Visualising the Heap

GCspy >screenshot Deep understanding of program behaviour is essential to the design of the next generation of garbage collectors and explicit allocators. Until now no satisfactory tools have been available to assist the implementer in gaining an understanding of heap behaviour. GCspy is an architectural framework for the collection, transmission, storage and replay of memory management behaviour. Its architecture allows easy incorporation into any memory management system: it is not limited to garbage-collected languages. It requires only small changes to the system in which it is incorporated but provides a simple to use yet powerful data-gathering API, that scales to allow very large heaps to be visualised effectively and efficiently. GCspy allows already-running, local or remote, systems to be visualised and those systems to run at full speed outside the points at which data is gathered. Its visualisation tool presents this information in a number of novel ways. GCspy is the product of an Memory Management Network collaboration between the universities of Glasgow (Tony Printezis) and Kent (Richard Jones). Screen shots can be found here.

 

Distributed Reference Counting

birrell's algorithm diagramLuc Moreau, Peter Dickman and I have been investigated how to formalise distributed reference counting, starting with the Java RMI algorithm. We used our formalisation to derive an invariant-based proof of correctness of the algorithm that avoids notoriously difficult temporal reasoning. A novel graphical representation of the algorithm allows intuitive explanations, and helped uncover a bug in the original. It also extends to describe fault tolerance in a clear way..

 

Distributed Garbage Collection

Distributed cyclic reference counting diagramMy PhD student, Dr. Helena Rodrigues, and I used a reference listing scheme augmented by partial tracing in a garbage collector for distributed systems that can reclaim distributed, cyclic garbage data structures. The collector is designed to be flexible thereby allowing efficiency, expediency and fault-tolerance to be traded against completeness. The algorithm places no overhead on local collectors and suspends local mutators only briefly. Partial tracing of the distributed graph involves only objects thought to be part of a garbage cycle: no collaboration with other processes is required.

 

A taxonomy for Distributed Garbage Collection. I have also been thinking about a taxonomy for distributed garbage collection. Sylvain Louboutin correctly observed that such distributed collectors need to free themselves from the legacy of centralised collectors. A taxonomy that avoids this legacy can illuminate new areas for distributed garbage collection research. My (rather old) Microsoft Research Lecture (7/8/00) presents an outline of such a taxonomy (PowerPoint show).

 

the Garbage Collection Page

GC book cover

My Garbage Collection pages include

The UK Memory Management Network

MM-NET logo I am the coordinator of the UK Memory Management Network (MM-NET), an EPSRC-funded network of researchers, interested in memory management for programming languages. The project's mission is to establish collaborations between UK industrialists and academics to further research and development of advanced memory management systems.

Students

Here's what became of some of my former students and post-docs:

 


Older work


Lazy Functional Languages

lambda on a chip logo My interest in garbage collection came from earlier work on the efficient implementation of lazy functional languages. An interesting example is the Three Instruction Machine, an abstract machine for lazy functional languages, which makes heavy demands upon the the memory management system. In particular the garbage collector must ensure that environment sharing does not lead to space leaks. Stephen Thomas and I developed an efficient and precise garbage collector tailored to the requirements of each closure (code-environment pair). The collector uses continuations to avoid all interpretive overheads and scavenges depth-first without using additional space by threading the stack through already visited environment slots.

Electronic publishing

I led the Kent team in the JISC-funded Infobike/JournalsOnline project (now ingentaJournals). The project consortium brought together publishers, librarians, computer scientists and industry to provide full-text access to journals.

Zedfont logoFonts and stuff I have also taught courses in Electronic Publishing and my fonts for the Z specification language are freely available for the Macintosh and Windows and can be adapted to be used with Unix. Both PostScript Type 1 and TrueType fonts are included.


Software


  • GCspy logo the GCspy heap visualiser.
  • University of Kent dates dates in formats suitable for most smart phones, Google calendar, etc. This includes a little Perl script to generate repeating, labelled and numbered events, which is probably generally useful.
  • WYC logo WYC racing calendar in a format suitable for import into iCal, Google Calendar or Outlook.
  • MetaTF: a language for specifying traces + tools for generating trace readers/writers.
  • ZedfontZedfont, a Postscript and TrueType font for the Z specification language.
  • sd, a little bash script for comparing files under the control of various source code control systems (git, svn, cvs, sccs, rcs), allowing viewing as output from diff or gnudiff, or side by side with gvim, vdiff or opendiff.
  • stripmail, a little Perl script for stripping headers off mail messages before printing them. It also handles MIME attachments (HTML with lynx, Word with antiword, etc). Useful for mail readers like exmh.

 


I gratefully acknowledge the generous support for my research from:

EPSRC IBM Microsoft Research Sun Microsystems RAEng


Follow profrejones on Twitter Locations of visitors to this page

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 03/02/2012 03:08