Degree Name

Doctor of Philosophy


School of Information Technology and Computer Science


This thesis examines the conflicts between the design ideals of object-orientation and the forms of synchronisation necessary for coordinating concurrency within multithreaded object-oriented programs, and presents an automatic runtime scheduling mechanism that resolves these conflicts.

In the context of composite operations involving multiple objects, existing approaches to providing synchronisation either violate the encapsulation of the participant components, or fail to address important issues in the areas of atomicity and isolation. This thesis provides a detailed description of a meta-layer synchronisation scheme which specifically addresses these conflicts. Invocations on shared objects are managed dynamically at run-time by a generic meta-level scheduling system. Meta information describing operations is used by the generic scheduler to reason about object interaction within invocations, allowing additional control over the evaluation, scheduling and execution of concurrent operations.

In contrast with more static approaches to synchronisation, the generic meta-layer scheme allows the exploitation of object-oriented principles such as encapsulation, inheritance, and generalisation in the design of shared components for concurrent systems. It adapts to the flexibility and dynamism possible in object-oriented systems, while implicitly providing safety for both simple and composite operations on constellations of shared objects.