一句话:提出 DLibOS,将库操作系统分布到专用核心,用片上网络硬件消息传递实现用户级高效且受保护的 IO。
长期以来,研究界猜测用户级高效 IO 处理必然破坏保护。本文提出 DLibOS,一种将库操作系统分布到专用核心的新范式,以在用户级同时获得性能与保护。其核心创新是利用片上网络(NoC)实现硬件消息传递,用其替代上下文切换完成不同地址空间间的通信。为验证可行性,作者在 Tilera 多核机器上实现了用户级驱动与网络栈,定义新的异步 socket 接口,并划分内存使接收、发送和应用只修改相互隔离的区域。评估表明,在 Web 服务器和 Memcached 上分别达到每秒 4.2M 与 3.1M 请求;与无保护的用户级网络栈相比,保护带来的开销可忽略。
A long body of research work has led to the conjecture that highly efficient IO processing at user-level would necessarily violate protection. In this paper, we debunk this myth by introducing DLibOS a new paradigm that consists of distributing a library OS on specialized cores to achieve performance and protection at the user-level. Its main novelty consists of leveraging network-on-chip to allow hardware message passing, rather than context switches, for communication between different address spaces. To demonstrate the feasibility of our approach, we implement a driver and a network stack at user-level on a Tilera many-core machine. We define a novel asynchronous socket interface and partition the memory such that the reception, the transmission and the application modify isolated regions. Our high performance results of 4.2 and 3.1 million requests per second obtained on a webserver and the Memcached applications, respectively, confirms the relevance of our design decisions. Finally, we compare DLibOS against a non-protected user-level network stack and show that protection comes at a negligible cost.
DOI 原文 ·
@inproceedings{paperbot4298,
title = {DLibOS},
author = {Stephen Mallon and Vincent Gramoli and Guillaume Jourjon},
booktitle = {ASPLOS},
year = {2018},
doi = {10.1145/3173162.3173209}
}