Date of Award

Fall 2013

Degree Type


Degree Name

Doctor of Philosophy (PhD)


Computer Science

First Advisor

Patrick Eugster

Committee Chair

Patrick Eugster

Committee Member 1

Tony Hosking

Committee Member 2

Suresh Jagannathan

Committee Member 3

Dongyan Xu


The need for programs to execute subcomponents in isolation from each other or with lower privileges is prevalent among today's systems. While modern operating systems provide mechanisms for fine-grained isolation of OS resources, only course-grained mechanisms exist for efficient isolation of heap memory. This dissertation develops a new memory programming model known as ribbons to enable fine-grained isolation of heap memory. Ribbons is a shared memory programming model that allows for more implicit sharing of memory than multiprocessing yet is more restrictive than multithreading. The ribbons model hierarchically structures the heap into protection domains. Privileges between these protection domains are carefully controlled in order to "sandbox" computation as needed. To allow practical use of the model in new and existing programs, this dissertation defines a backwards-compatible extension of Java, termed RibbonJ. The progress and isolation properties of RibbonJ are analyzed within a simplified formal model. Additionally, ribbons is implemented within JikesRVM, leveraging existing hardware memory protection mechanisms to avoid the overhead of inline security checks and read or write barriers. Runtime efficiency is evaluated through microbenchmarks and the DaCapo benchmarks, exhibiting minor overhead. This dissertation also studies ribbons further by refactoring Apache Tomcat and Apache httpd. Apache Tomcat is refactored to use RibbonJ for application isolation, the resulting design and complexity are detailed, and performance is evaluated using the SPECweb2009 benchmark. Finally, Apache httpd is enhanced with a ribbonized multiprocessing module, and performance is analyzed via the Apache HTTP benchmarking tool, ab.