操作系统与运行时综述
9 篇论文覆盖移动操作系统服务、内存分配、固件与扩展伯克利包过滤器(extended Berkeley Packet Filter,eBPF)隔离、Compute Express Link(CXL)互连上的微内核、无服务器计算和托管运行时;共同方法是把应用层反复实现的权宜方案提升为明确的调度、状态或隔离抽象。
核心论文
操作系统服务与内存运行时(3 篇)
- Spars — 将渲染服务拆成按序准备、乱序执行和按序提交三个阶段,从而释放多核并行能力。
- Copier — 把内存复制提升为一等操作系统服务,协调单指令多数据(single instruction, multiple data,SIMD)执行、直接内存访问(direct memory access,DMA)与复制后使用之间的重叠。
- jwmalloc — 用统一的分片内存池(slab)、封闭兄弟树、双缓冲回收和非阻塞后备路径适配手机工作负载。
隔离、虚拟化与新硬件操作系统(3 篇)
- µEFI — 用微内核式地址空间隔离统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)模块,同时保持协议透明。
- vBPF — 用命名空间和延迟绑定虚拟化扩展伯克利包过滤器(extended Berkeley Packet Filter,eBPF)的挂载点、程序与状态视图。
- StarfishOS — 在CXL 上以状态分区微内核重新审视单一系统映像(single-system image,SSI);当前只有公开元数据。
无服务器计算、批处理与托管运行时(3 篇)
- AFaaS — 从生产环境的冷启动轨迹出发,用进程派生、资源池和树状种子优化无服务器函数启动。
- Quark — 将共址批处理的长生命周期执行器改为任务级无服务器实例。
- DGC — 把并发垃圾回收(garbage collection,GC)的标记阶段解聚为共享服务,并对多个运行时的突发负载进行全局错峰。
主题综述
Spars-OSDI25 与 Copier-SOSP25 都从“已有接口隐藏了并行机会”出发。前者在有状态渲染接口下引入准备、执行和提交三个阶段;后者利用复制完成到首次使用之间的时间窗口,把同步内存复制改为由操作系统调度的任务。jwmalloc-OSDI26 同样不只优化最常走的快速路径,而是联合调整分片内存池、后端树、回收机制与锁等待。
隔离路线的核心是决定状态归谁所有,以及资源在何时绑定。uEFI-ATC25 把已签名模块移出共享地址空间,vBPF-OSDI26 把程序从物理挂载点延迟绑定到租户命名空间;StarfishOS-SOSP26 的公开题名则表明,它在 CXL 上以状态分区支撑单一系统映像。三者都试图在兼容现有接口的同时减少共享状态,但 StarfishOS 的证据仍仅限公开元数据。
AFaaS-OSDI25、Quark-OSDI26 与 DGC-OSDI26 共同挑战固定预留资源的做法。函数启动、批处理执行器和垃圾回收标记者都会阶段性地集中消耗资源;按需实例、共享池或跨运行时协调能够提高利用率,却也会扩大控制平面与共享故障域。
阅读提示
- 异步化:把调用者原本必须等待的工作移到后台执行;系统仍需明确完成顺序、依赖关系和失败处理。
- 状态所有权:明确哪个组件有权读写状态,以及状态如何随资源迁移;边界不清会把局部故障扩散为全局故障。
- 服务等级目标(service-level objective,SLO):系统承诺达到的延迟、可用性或吞吐目标。本页同时关注功能正确性与这些运行指标。
- 突发负载:资源需求在短时间内集中上升的工作负载;它会使稳态平均值掩盖排队和尾延迟问题。
- **中央处理器(central processing unit,CPU)**执行通用代码,**图形处理器(graphics processing unit,GPU)**提供大规模并行计算。CXL 使处理器、加速器和内存设备能在一致互连上共享或扩展状态。
设计空间矩阵
| 论文 | 工作负载 | 主要瓶颈 | 核心机制 | 主要资源 | 正确性或服务等级边界 |
|---|---|---|---|---|---|
| Spars-OSDI25 | 移动端渲染 | 单线程渲染服务 | 乱序执行、按序提交 | CPU、GPU | 保持绘制顺序;仅覆盖二维用户界面 |
| Copier-SOSP25 | 大量内存复制的服务 | 同步内存复制 | 异步复制服务 | SIMD、DMA、CPU | 必须识别复制结果首次被使用的依赖关系 |
| jwmalloc-OSDI26 | 移动端内存分配 | 重排格式、回收与锁等待 | 分片内存池、封闭兄弟树与后备路径 | CPU、动态随机存取存储器(DRAM) | 验证范围有明确上界 |
| uEFI-ATC25 | 固件模块 | 共享特权 | 地址空间隔离 | CPU、内存管理单元(MMU) | 依赖完整的协议元数据 |
| vBPF-OSDI26 | 多租户 eBPF | 全局挂载点与状态 | 命名空间和延迟绑定 | 内核、eBPF | 信任内核、验证器和工具链 |
| StarfishOS-SOSP26 | CXL 单一系统映像 | 未公开 | 状态分区微内核 | CXL | 仅有元数据,不能判断实现边界 |
| AFaaS-OSDI25 | 生产环境中的函数即服务(Function as a Service,FaaS) | 冷启动 | 进程派生、资源池和树状种子 | CPU、内存 | 证据来自蚂蚁生产函数 |
| Quark-OSDI26 | 共址批处理 | 空闲资源仍被占用 | 任务级无服务器实例 | CPU、内存 | 证据来自 Spark 生产工作负载 |
| DGC-OSDI26 | 托管运行时 | 垃圾回收突发负载 | 解聚式标记服务 | CPU、远程直接内存访问(RDMA) | 高负载和网络接口卡饱和时存在边界 |
共同观察
- 共享状态会把局部工作变成全局串行点。 渲染状态、复制引擎、内存分配器后端、eBPF 挂载点和垃圾回收标记者均出现这一问题。
- 异步化需要显式提交或验证。 Spars-OSDI25 以按序提交保持渲染顺序,Copier-SOSP25 追踪复制结果的使用依赖,DGC-OSDI26 需要远程堆快照与全局调度。只把工作移到后台,不能保证正确性或尾延迟。
- 生产工作负载具有突发性、阶段性和资源超额订阅。 AFaaS-OSDI25、Quark-OSDI26 与 jwmalloc-OSDI26 的设计均依赖真实轨迹,而非只依赖稳态微基准。
假设冲突与脆弱点
- 把服务池化可以平滑突发负载,但 DGC-OSDI26 的共享标记者与 Quark-OSDI26 的任务实例也会增加网络依赖、调度依赖和共享故障风险。
- 透明兼容能够减少部署改动,却要求系统理解接口背后的隐含语义:uEFI-ATC25 依赖协议元数据,Copier-SOSP25 依赖复制结果的使用边界,vBPF-OSDI26 依赖从事件到命名空间的映射。
- StarfishOS-SOSP26 目前只有元数据,不能根据题名推断 CXL 的缓存一致性、故障处理和状态迁移已经得到解决。
值得关注的方向
- 异步操作系统服务的统一依赖接口:比较渲染、复制、输入输出和加速器命令在准备、执行、提交三个阶段中的共性。
- 共享服务故障注入:对 DGC、无服务器资源池和 eBPF 多路复用器注入崩溃、网络分区与过期状态,测量最坏恢复时间。
- CXL 状态所有权:等待 StarfishOS 全文公开后,将其与现有 CXL 内存放置和系统工作放在同一故障模型下比较。