User-Level Management of Kernel Memory
نویسندگان
چکیده
Kernel memory is a resource that must be managed carefully in order to ensure the efficiency and safety of the system. The use of an inappropriate management policy can weaken the isolation between subsystems, lead to suboptimal performance, and even make the kernel vulnerable to denial-of-service attacks. Yet, many existing kernels use only a single built-in policy, which is always a compromise between performance and generality. In this paper, we address this problem by exporting control over kernel memory to user-level pagers. Thus, subsystems can implement their own application-specific management policies while independent subsystems can still be isolated from each other. The pagers have full control over the memory resources they manage; they can even preempt and later restore individual pages of kernel memory. Still, protection is not compromised because the kernel converts its metadata into a safe representation before exporting it. Therefore, pagers need only be trusted by their respective clients. We describe the model we use to page kernel memory and various techniques for obtaining a safe external representation for kernel metadata. We also report experiences with an experimental kernel that implements our scheme and outline our plans to further develop the approach.
منابع مشابه
Network Interface Support for User-Level Buffer Management
The network interfaces of existing multicomputers and workstations require a signi cant amount of software overhead to provide protection and bu er management in order to implement messagepassing protocols. This paper advocates a physical memory mapping method in a network interface design that supports user-level bu er management. The method requires only a minimal addition to the traditional ...
متن کاملMoving the Default Memory Manager Out of the Mach Kernel
1. Abstract We have implemented a default memory manager for the Mach 3.0 kernel that resides entirely in user space. The default memory manager uses a small set of kernel privileges to lock itself into memory, preventing deadlocks against other Mach system services. An extension to the Mach boot sequence loads both the kernel and user program images at system startup time. The resulting system...
متن کاملKernel data – First class citizens of the system
Kernel memory is a resource that must be managed carefully in order to ensure the efficiency and availability of the system. The use of an inappropriate policy would lead to suboptimal performance and even make the system susceptible to denial of service attacks. In this paper, we argue that user-level managers, with their domain specific knowledge, can better manage the kernel memory consumpti...
متن کامل"Unstable Threads" Kernel Interface for Minimizing the Overhead of Thread Switching
The performance of threads is limited primarily by the overhead of two kinds of switching: vertical switching (user/kernel domain switching) and horizontal switching (context switching between threads). Although these switchings are indispensable in some situations, existing thread mechanisms involve unnecessary switchings on multiprogrammed systems, because of inappropriate interfaces between ...
متن کاملQuestions on User - Level Device Drivers
T HE microkernel story is full of good ideas and blind alleys. The story began with enthusiasm about the promised dramatic increase in flexibility, safety, and modularity. But over the years, enthusiasm changed to disappointment, because the first-generation microkernels were inefficient and inflexible. • Today, we observe radically new approaches to the microkernel idea that seek to avoid the ...
متن کامل