TreeSLS: A Whole-system Persistent Microkernel with Tree-structured State Checkpoint on NVM
Fangnuo Wu, Mingkai Dong, Gequan Mo, and Haibo Chen
Shanghai Jiao Tong University
https://dl.acm.org/doi/abs/10.1145/3600006.3613160
引言
主流计算机采用多级存储模型,分为内存 (DRAM) 和存储 (HDD/SSD) 两大类。内存是快速但易失的,操作系统和应用程序都在内存中运行。存储是慢速但持久的,通常用来保存文件。应用程序在内存中处理数据,在存储设备中持久化数据。数据持久化需要应用程序进行显式控制,即在内存和存储设备之间大量搬移数据,并保证崩溃一致性,这会大幅增加编程复杂性和性能开销。
如果操作系统采用单级存储模型、支持应用透明的数据持久性,应用程序就只需要访问内存接口、摆脱传统外部存储设备的概念无需管理文件,那么整个系统将更加简单、高效、可移植。基于Aurora单级存储,RocksDB 等应用程序的代码可以删减40% [1]。
SOSP’23最佳论文 TreeSLS是一种基于持久内存(NVM)实现单级存储(single-level store, SLS)、支持全系统持久性的微内核。TreeSLS是上海交大陈海波教授团队的最新佳作,是自1967年首届SOSP召开以来首篇由亚洲研究人员独立获得的最佳论文。
本文将带您深入了解TreeSLS的研究背景、关键技术、评估结果和研究贡献,以及作者在论文问题定位方面的技巧。
本文将从如下方面解读TreeSLS:
-
背景介绍。介绍微内核、系统持久性、单级存储的概念,以及Aurora (SOSP'21) 单级存储系统。
-
论文解读。1) 研究动机。概述现有工作存在的关键问题以及作者做这项研究的目标。2) 设计思路。总结TreeSLS的两个主要设计目标。3) 关键技术。简要阐述TreeSLS的设计和实现。4) 评估分析。展示TreeSLS在不同场景下的评估数据和对比分析。
-
论文评述。我们对本文进行原创性评述,分析论文定位和呈现技巧,以及作为最佳论文的核心贡献。
1. 背景介绍
1.1 微内核 (Microkernel)
图1: 宏内核 vs. 微内核 (维基百科)
如图1所示,微内核是一种最小化的操作系统内核,它只负责CPU调度、内存管理、和进程通信。其他服务,如驱动程序、文件系统和网络,作为单独的用户进程运行,并通过消息与内核通信。
微内核的优点:
-
安全稳定,因为在内核模式下运行的服务较少,降低了攻击和崩溃的风险。
-
易维护,因为服务可以轻松地更改或替换,而不影响系统。
-
可移植,因为内核可以适应不同的硬件平台。
微内核的缺点:
-
通信开销:在微内核系统中,获取服务涉及向服务器发送IPC消息并在另一个IPC消息中获取结果。如果驱动程序实现为进程,则此过程需要上下文切换;如果驱动程序实现为过程,则此过程需要函数调用。而在宏内核系统中,获取内核服务仅需要具有两个模式切换的单个系统调用。
-
数据传输开销:在微内核系统中,进程A将数据传输到进程B并返回可能会产生额外的数据拷贝开销。在宏内核系统中,内核可以直接访问进程A缓冲区中的数据。
基于微内核的代表性操作系统:
-
MINIX 3:一个小而可靠的操作系统,它的微内核只有12,000行代码。
-
Mach:一个开创性的微内核,影响了许多其他操作系统,如GNU Hurd和Mac OS X。
微内核和宏内核哪个更加优越是存在广泛争议的。大家感兴趣可以查看