The SawMill multiserver approach

The SawMill multiserver approach
复制标题

SawMill 多服务器方法

DOI:
10.1145/566726.566751
复制
发表时间:
2000
期刊:
Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system
影响因子:
--
通讯作者:
Lars Reuther
Lars Reuther
中科院分区:
--
文献类型:
--
作者:
A. Gefflaut;T. Jaeger;Yoonho Park;J. Liedtke;Kevin Elphinstone;Volkmar Uhlig;Jonathon Tidswell;Luke Deller;Lars Reuther

文献摘要

被引文献

相似文献

由一组由硬件保护的服务器组成的多功能系统最初对1990年代初期产生了重大兴趣。如果可以将整体操作系统分解为具有定义明确的接口和众所周知的保护机制的一组服务器,则可以显着提高操作系统的鲁棒性和可配置性。但是,最初的多种制度系统[4,14]受到性能差和软件工程复杂性的阻碍。 Mach Microkernel [10]基础遭受了许多性能问题(例如IPC),并且必须解决许多困难问题以启用正交服务器的系统构建(例如,统一的缓冲区管理,连贯的安全性,柔性,服务器界面设计等)。与此同时,已经产生了许多重要的研究结果,使我们相信对多种处理系统体系结构的重新评估是有必要。首先,自MACH以来,Microkernel技术已大大提高。 L4 [13]和Exokernel [6]是最近构建了有效服务器的两个最近的微孔(即,L4 [12]的L4linux和Exos for Exokernel [9])。在这些系统中,服务器是独立的OS,但是我们鼓励我们的内核和服务器开销(特别是上下文开关开销)被最小化。其次,我们已经看到了启用零副本协议的内存管理方法的明显改进(例如,fbufs [5]和模拟副本[3])。其他进步包括改进的内核模块化[7],组件模型服务[8],多层安全协议等。请注意,我们不是唯一一个认为是重新检查多种产品的研究人员,因为多层系统也正在在卵石内核[11]上构建。此外,现在需要更需要多种制度体系结构。考虑各种专业的,嵌入式系统的出现。传统上,每个嵌入式系统都包含一个专门的操作系统。鉴于此类系统的预期扩散,必须构建的操作系统数量将大大增加。从现有服务器配置操作系统的工具将变得越来越有价值,并且在守护可能存储在此类系统上的有价值的信息(例如私钥)中,需要在服务器之间进行足够的保护。这正是多种制度系统的动机。在本文中,我们定义了锯木厂多种技术的方法。该方法包括:(1)可以构建高效且稳健的多层系统的体系结构,以及(2)解决关键多层问题问题的一组协议设计指南。首先,锯木厂体系结构由在L4 Microkernel上执行的一组用户级服务器组成,以及一组使这些服务器能够在本地获得和管理资源的服务。其次,锯木厂协议设计指南使系统设计人员能够最大程度地减少服务器之间保护边界引入的通信开销。我们演示了从Linux代码库中得出的两个服务器系统的锯木厂方法:(1)EXT2文件系统和(2)IP网络系统。纸张的其余部分结构如下。在第2节中,我们定义了将整体操作系统转换为多层操作系统时必须解决的问题。在第3和第4节中,我们分别定义了锯木厂架构和协议设计方法。在第5节中,我们在文件系统和网络系统实现中演示了其中一些准则。在第6节中,我们检查了当前的Sawmill Linux系统的性能。
Multiserver systems, operating systems composed from a set of hardware-protected servers, initially generated significant interest in the early 1990's. If a monolithic operating system could be decomposed into a set of servers with well-defined interfaces and well-understood protection mechanisms, then the robustness and configurability of operating systems could be improved significantly. However, initial multiserver systems [4, 14] were hampered by poor performance and software engineering complexity. The Mach microkernel [10] base suffered from a number of performance problems (e.g., IPC), and a number of difficult problems must be solved to enable the construction of a system from orthogonal servers (e.g., unified buffer management, coherent security, flexible server interface design, etc.).In the meantime, a number of important research results have been generated that lead us to believe that a re-evaluation of multiserver system architectures is warranted. First, microkernel technology has vastly improved since Mach. L4 [13] and Exokernel [6] are two recent microkernels upon which efficient servers have been constructed (i.e., L4Linux for L4 [12] and ExOS for Exokernel [9]). In these systems, the servers are independent OSes, but we are encouraged that the kernel and server overheads, in particular context switches overheads, are minimized. Second, we have seen marked improvements in memory management approaches that enable zero-copy protocols (e.g., fbufs [5] and emulated copy [3]). Other advances include, improved kernel modularity [7], component model services [8], multiserver security protocols, etc. Note that we are not the only researchers who believe it is time to re-examine multiservers, as a multiserver system is also being constructed on the Pebble kernel [11].In addition, there is a greater need for multiserver architectures now. Consider the emergence of a variety of specialized, embedded systems. Traditionally, each embedded system includes a specialized operating system. Given the expected proliferation of such systems, the number of operating systems that must be built will increase significantly. Tools for configuring operating systems from existing servers will become increasingly more valuable, and adequate protection among servers will be necessary to guard valuable information that may be stored on such systems (e.g., private keys). This is exactly the motivation for multiserver systems.In this paper, we define the SawMill multiserver approach. This approach consists of: (1) an architecture upon which efficient and robust multiserver systems can be constructed and (2) a set of protocol design guidelines for solving key multiserver problems. First, the SawMill architecture consists of a set of user-level servers executing on the L4 microkernel and a set of services that enable these servers to obtain and manage resources locally. Second, the SawMill protocol design guidelines enable system designers to minimize the communication overheads introduced by protection boundaries between servers. We demonstrate the SawMill approach for two server systems derived from the Linux code base: (1) an Ext2 file system and (2) an IP network system.The remainder of the paper is structured as follows. In Section 2, we define the problems that must be solved in converting a monolithic operating system into a multiserver operating system. In Sections 3 and 4, we define the SawMill architecture and the protocol design approach, respectively. In Section 5, we demonstrate some of these guidelines in the file system and network system implementations. In Section 6, we examine the performance of the current SawMill Linux system.