操作系统与运行时综述

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-OSDI25Copier-SOSP25 都从“已有接口隐藏了并行机会”出发。前者在有状态渲染接口下引入准备、执行和提交三个阶段;后者利用复制完成到首次使用之间的时间窗口,把同步内存复制改为由操作系统调度的任务。jwmalloc-OSDI26 同样不只优化最常走的快速路径,而是联合调整分片内存池、后端树、回收机制与锁等待。

隔离路线的核心是决定状态归谁所有,以及资源在何时绑定。uEFI-ATC25 把已签名模块移出共享地址空间,vBPF-OSDI26 把程序从物理挂载点延迟绑定到租户命名空间;StarfishOS-SOSP26 的公开题名则表明,它在 CXL 上以状态分区支撑单一系统映像。三者都试图在兼容现有接口的同时减少共享状态,但 StarfishOS 的证据仍仅限公开元数据。

AFaaS-OSDI25Quark-OSDI26DGC-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-SOSP26CXL 单一系统映像未公开状态分区微内核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-OSDI25Quark-OSDI26jwmalloc-OSDI26 的设计均依赖真实轨迹,而非只依赖稳态微基准。

假设冲突与脆弱点

  • 把服务池化可以平滑突发负载,但 DGC-OSDI26 的共享标记者与 Quark-OSDI26 的任务实例也会增加网络依赖、调度依赖和共享故障风险。
  • 透明兼容能够减少部署改动,却要求系统理解接口背后的隐含语义:uEFI-ATC25 依赖协议元数据,Copier-SOSP25 依赖复制结果的使用边界,vBPF-OSDI26 依赖从事件到命名空间的映射。
  • StarfishOS-SOSP26 目前只有元数据,不能根据题名推断 CXL 的缓存一致性、故障处理和状态迁移已经得到解决。

值得关注的方向

  • 异步操作系统服务的统一依赖接口:比较渲染、复制、输入输出和加速器命令在准备、执行、提交三个阶段中的共性。
  • 共享服务故障注入:对 DGC、无服务器资源池和 eBPF 多路复用器注入崩溃、网络分区与过期状态,测量最坏恢复时间。
  • CXL 状态所有权:等待 StarfishOS 全文公开后,将其与现有 CXL 内存放置和系统工作放在同一故障模型下比较。