Exporting a user interface to memory management from a communication-oriented operating system

Michael W. Young · 1989

One of the most important resources that an operating system manages is main memory. Systems often provide virtual memory, using this main memory to cache the contents of a larger virtual storage. Unfortunately, existing systems hide the algorithms for controlling the contents of the main memory cache and for managing the external storage used to represent that virtual memory within the operating system kernel, making them unavailable to important systems applications. My thesis is that it is desirable and practical to provide an external memory management interface that allows user-level programs to define and manage the contents of memory objects that may be mapped into virtual address spaces. Exporting this interface simplifies the construction of complex virtual memory applications, allowing them to manage the sharing, consistency, and permanent storage of their data without being embedded in the operating system kernel. These systems applications can also take advantage of the performance benefits of using main memory as a cache of the contents of their data objects. This dissertation describes the Mach external memory management interface and implementation in detail. The interface design is based on communication: memory objects are communication channels, on which the operating system sends messages to read or write the contents of pages of virtual memory. The implementation addresses the modularity and security issues that arise from exporting this interface to user-level programs. Several systems applications that have been constructed using the Mach interface are described, including a user-level file system, a transaction-based data management system, and a network shared virtual memory service. An evaluation of the Mach system analyzes the cost of using this interface, and shows how it makes a fast path to the main memory cache available to systems applications. Experiments also show that the overall performance of the Mach system does not suffer appreciably under normal load, and that this system still outperforms commercially available operating systems under identical benchmarks. I conclude that an external memory management interface is a useful, affordable component that should be provided by future operating systems.

Read the paper · More papers on PaperTik