Virtual Memory and Backing Storage Management in Multiprocessor Operating Systems Using Object-Oriented Design Techniques

The Choices operating system architecture [3, 4, 15] uses class hierarchies and object-oriented programming to facilitate the construction of customized operating systems for shared memory and networked multiprocessors. The software is being used in the Tapestry Parallel Computing Laboratory at the University of Illinois to study the performance of algorithms, mechanisms, and policies for parallel systems. This paper describes the architectural design and class hierarchy of the Choices memory and secondary storage management system. The mechanisms and policies of a virtual memory system implement a memory hierarchy that exploits the trade-offs between response times and storage capacities. In Choices, the notion of a memory hierarchy is represented by layers in which abstract classes define interfaces between and internal to the layers. Concrete subclasses implement new algorithms or data structures or specializations of existing ones. This paper describes the motivation for an object-oriented, class-hierarchical approach to virtual memory system design, and describes the overall architecture of such an approach, as it has been applied to the Choices system. Special attention is paid to the advantages in both design and implementation that have resulted from using object-oriented techniques.

[1]  Roy H. Campbell,et al.  Process management and exception handling in multiprocessor operating systems using object-oriented design techniques , 1988, OOPSLA '88.

[2]  CampbellRoy,et al.  Choices (class hierarchical open interface for custom embedded systems) , 1987 .

[3]  Roy H. Campbell,et al.  The Design of a Multiprocessor Operating System , 1987, C++ Workshop.

[4]  Alan Shaw,et al.  The logical design of operating systems , 1987 .

[5]  Roy H. Campbell,et al.  Choices (class hierarchical open interface for custom embedded systems) , 1987, OPSR.

[6]  Roy H. Campbell,et al.  A C++ Class Hierarchy for Building UNIX-like File Systems , 1988, C++ Conference.

[7]  Larry D. Wittie,et al.  MICROS, A Distributed Operating System for MICRONET, A Reconfigurable Network Computer , 1980, IEEE Trans. Computers.

[8]  Abraham Silberschatz,et al.  Operating System Concepts , 1983 .

[9]  David L. Black,et al.  Machine-independent virtual memory management for paged uniprocessor and multiprocessor architectures , 1987, IEEE Trans. Computers.

[10]  Daniel C. Halbert,et al.  Using Types and Inheritance in Object-Oriented Programming , 1987, IEEE Software.

[11]  David R. Cheriton The V Kernel: A Software Base for Distributed Systems , 1984, IEEE Software.

[12]  Roy H. Campbell,et al.  A Class Hierarchy for Building Stream-Oriented File Systems , 1989, ECOOP.

[13]  Andrew S. Tanenbaum,et al.  An overview of the Amoeba distributed operating system , 1981, OPSR.

[14]  Alfred V. Aho,et al.  Principles of Optimal Page Replacement , 1971, J. ACM.

[15]  George G. Robertson,et al.  Accent: A communication oriented network operating system kernel , 1981, SOSP.