Results 1 -
2 of
2
FLEX: A Tool for Building Efficient and Flexible Systems
- In Proc. Fourth Workshop on Workstation Operating Systems
, 1993
"... Modern operating systems must support a wide variety of services for a diverse set of users. Designers of these systems face a tradeoff between functionality and performance. Systems like Mach provide a set of general abstractions and attempt to handle every situation, which can lead to poor perform ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Modern operating systems must support a wide variety of services for a diverse set of users. Designers of these systems face a tradeoff between functionality and performance. Systems like Mach provide a set of general abstractions and attempt to handle every situation, which can lead to poor performance for common cases. Other systems, such as Unix, provide a small set of abstractions that can be made very efficient, at the expense of functionality. We are implementing a flexible system building tool, FLEX, that allows us to support a powerful operating systems interface efficiently by constructing specialized module implementations at runtime. FLEX improves the performance of existing systems by optimizing interprocess communications paths and relocating servers and clients to reduce communications overhead. These facilities improve the performance of Unix system calls on Mach from 20-400%. Furthermore, FLEX can dynamically extend the kernel in a controlled fashion, which gives user...
Module Management As A System Service
, 1993
"... A new approach to program modularity is presented, based on three key ideas: (i) elevating module management to a pervasive system service, (ii) casting the notion of module as an abstract data type, and (iii) representing modules as objects for programmed manipulation and retention. The result is a ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
A new approach to program modularity is presented, based on three key ideas: (i) elevating module management to a pervasive system service, (ii) casting the notion of module as an abstract data type, and (iii) representing modules as objects for programmed manipulation and retention. The result is an innovative system architecture for program construction, with flexible capabilities for name space management, inter-process sharing, and incremental loading and relinking. The necessary reflective powers are provided by a permanently running system process exporting a wide repertory of module manipulation and delivery services. This approach draws on insights from both programming languages and system architecture. From programming languages, we have taken inspiration from the power of inheritance in object-oriented programming languages, and the importance of types as a basis for secure, evolvable module interfaces. From system architecture, we have profited from the server process appro...

