Files in this item
|(no description provided)|
|Title:||Object-Oriented Hierarchies Across Protection Boundaries|
|Author(s):||Dykstra, David Wayne|
|Doctoral Committee Chair(s):||Campbell, Roy H.|
|Department / Program:||Computer Science|
|Degree Granting Institution:||University of Illinois at Urbana-Champaign|
|Abstract:||Protection is the mechanism employed by operating systems to control access to resources. Object encapsulation in object-based systems requires control of access to every object. The incremental definition of objects through inheritance and type hierarchies is an important aspect of object-oriented systems. This dissertation examines the relationship between protection and object-oriented hierarchies. Splitting object-oriented hierarchies across protection boundaries is particularly attractive for the purposes of providing a uniform programming model to object-oriented applications and for implementing a minimal object-oriented kernel.
After surveying current research and providing a background for discussion, this dissertation presents a detailed analysis of the issues relating to splitting object-oriented hierarchies across protection boundaries. The analysis is independent of language, operating system, and protection model. The analysis reveals the precautions that must be taken to guard against protection violations. The analysis also shows that in the general case an object must be able to be split across the protection boundaries, and that the child portion of the object should delegate or forward unrecognized method calls to the parent portion of the object on the other side of the boundary.
A practical implementation of object-oriented hierarchies across protection boundaries is presented. The implementation uses C++ and the Choices object-oriented operating system. The implementation is based on proxy objects and a partitioned rings of protection model. Proxy objects are automatically allocated, validated, and stripped off to provide an interface that is transparent to the programmer. A tool called Proxify++ assists in providing necessary information to the run-time system. Examples of the use of the implementation are provided, and experience gained by moving the filesystem hierarchy outside of the kernel is presented. Performance of the implementation is also evaluated, and calls to the kernel are found to be comparable to operating systems that are not object-oriented. Performance for calls to intermediate rings is found to be superior to calls to separate address spaces.
Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 1992.
|Date Available in IDEALS:||2014-12-17|