The SawMill multiserver approach

A. Gefflaut, T. Jaeger, Yoonho Park, J. Liedtke, Kevin Elphinstone, Volkmar Uhlig, Jonathon Tidswell, Luke Deller, Lars Reuther
{"title":"The SawMill multiserver approach","authors":"A. Gefflaut, T. Jaeger, Yoonho Park, J. Liedtke, Kevin Elphinstone, Volkmar Uhlig, Jonathon Tidswell, Luke Deller, Lars Reuther","doi":"10.1145/566726.566751","DOIUrl":null,"url":null,"abstract":"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.","PeriodicalId":147728,"journal":{"name":"Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system","volume":"14 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2000-09-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"109","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/566726.566751","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 109

Abstract

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.
SawMill多服务器方法
多服务器系统,即由一组硬件保护的服务器组成的操作系统,最初在20世纪90年代初引起了极大的兴趣。如果一个单片操作系统可以分解成一组具有良好定义的接口和良好理解的保护机制的服务器,那么操作系统的健壮性和可配置性就可以得到显著提高。然而,最初的多服务器系统[4,14]受到性能差和软件工程复杂性的阻碍。Mach微内核[10]基础遭受了许多性能问题(例如IPC),并且必须解决许多难题才能实现从正交服务器构建系统(例如,统一的缓冲区管理,一致的安全性,灵活的服务器接口设计等)。同时,许多重要的研究结果已经产生,使我们相信重新评估多服务器系统架构是有必要的。首先,自Mach以来,微内核技术有了很大的改进。L4[13]和Exokernel[6]是最近构建的两个高效服务器的微内核(即L4Linux用于L4 [12], ExOS用于Exokernel[9])。在这些系统中,服务器是独立的操作系统,但是我们鼓励最小化内核和服务器开销,特别是上下文切换开销。其次,我们已经看到了内存管理方法的显著改进,支持零复制协议(例如,fbufs[5]和模拟复制[3])。其他进步包括改进的内核模块化[7]、组件模型服务[8]、多服务器安全协议等。请注意,我们并不是唯一认为是时候重新研究多服务器的研究人员,因为多服务器系统也正在Pebble内核[11]上构建。此外,现在对多服务器架构的需求更大了。考虑到各种专门的嵌入式系统的出现。传统上,每个嵌入式系统都包含一个专门的操作系统。考虑到此类系统的预期扩散,必须构建的操作系统的数量将显著增加。从现有服务器配置操作系统的工具将变得越来越有价值,服务器之间的充分保护将是必要的,以保护可能存储在这些系统上的有价值的信息(例如,私钥)。这正是多服务器系统的动机所在。在本文中,我们定义了SawMill多服务器方法。该方法包括:(1)可以构建高效且健壮的多服务器系统的体系结构;(2)解决关键多服务器问题的一组协议设计指南。首先,SawMill架构由一组在L4微内核上执行的用户级服务器和一组使这些服务器能够在本地获取和管理资源的服务组成。其次,SawMill协议设计指南使系统设计人员能够将服务器之间的保护边界引入的通信开销最小化。我们为两个源自Linux代码库的服务器系统演示了SawMill方法:(1)Ext2文件系统和(2)IP网络系统。本文的其余部分结构如下。在第2节中,我们定义了在将单片操作系统转换为多服务器操作系统时必须解决的问题。在第3节和第4节中,我们分别定义了SawMill架构和协议设计方法。在第5节中,我们将在文件系统和网络系统实现中演示其中的一些指导原则。在第6节中,我们将检查当前SawMill Linux系统的性能。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信