home/tutorial/OS 速查

OS ↔ vLLM 速查

遇到 vLLM 某个模块卡住?反查这张表 → 找对应 OS 概念 → 用 OSTEP / 6.S081 补 → 回来继续读。

这页是常驻参考。不需要从头到尾读—— 当你在 vLLM 源码里看到某个陌生模块时,回到这页查它在 OS 里对应什么,然后去补那一块。

01核心对照大表

vLLM 模块 / 概念 OS 对应 关键学习材料 vLLM 源码位置
PagedAttention KV cache 虚拟内存 + 分页 OSTEP 13 / 15 / 18 vllm/v1/core/kv_cache_manager.py
Block table Page table OSTEP 18 / 19 vllm/v1/core/block_pool.py
Block allocator Physical frame allocator / buddy OSTEP 17 vllm/v1/core/block_pool.py
Prefix caching Page cache + COW OSTEP 39 (file system intro) vllm/v1/core/ · 搜 prefix_cache
Prefix cache eviction Page replacement (LRU / Clock) OSTEP 22 BlockPool.evict
CPU offload / swap-out Swap to disk OSTEP 21 vllm/v1/worker/cache_engine.py
Continuous batching Process scheduler · time-sharing OSTEP 7 / 8 / 9 vllm/v1/core/sched/scheduler.py
Preemption Process preemption · context switch OSTEP 7 scheduler.py · _preempt
Token budget Quantum / time slice OSTEP 8 (MLFQ) SchedulingBudget dataclass
Engine main loop Kernel main loop / event loop OSTEP 6 vllm/v1/engine/core.py · run_busy_loop
HTTP server async I/O multiplexing (epoll / async) OSTEP 39 · UNIX I/O models vllm/entrypoints/openai/api_server.py
Multi-process workers Process · fork / exec OSTEP 4 / 5 vllm/v1/executor/
ZMQ engine ↔ API IPC IPC (pipe / socket / message queue) OSTEP 50 vllm/v1/engine/async_llm.py
Scheduler 主锁 Lock / monitor pattern OSTEP 28 / 30 scheduler.py
Multi-GPU (TP/PP) 分布式系统 · RPC OSTEP 48 (RPC) + Megatron 论文 vllm/distributed/
Multi-LoRA 多进程隔离 · 进程间内存共享 OSTEP 4 vllm/lora/
Weight loading (mmap) mmap · demand paging OSTEP 22 · 39 vllm/model_executor/model_loader/
CUDA graph capture (无直接 OS 对应) · 接近 batch syscall CUDA docs · stream graph vllm/v1/worker/gpu_model_runner.py
FlashAttention IO-aware 缓存友好的算法设计 CMU 15-418 lec 2 外部依赖 flash-attn

02OS 章节优先级

OSTEP 全书 700+ 页,但你只需要下面这些:

🔴 必读 (~150 页)

  • Ch 4-5 · 进程
  • Ch 7-10 · 调度
  • Ch 13-22 · 虚拟内存(选读 13/15/18/21/22)
  • Ch 28-30 · 同步原语

🟡 用到再翻

  • Ch 39 · 文件 I/O 与 page cache 类比
  • Ch 48-50 · RPC / 一致性(多卡时)
  • Ch 6 · 系统调用机制

🟢 略过

  • 设备驱动、bootloader
  • FAT / ext2 内部结构
  • 安全 / 权限
  • C 内存安全 lab

📺 视频替代

看不进书时:MIT 6.S081 视频选这三节:

  • Virtual memory (lec 4)
  • Scheduling (lec 9-10)
  • Locking (lec 12)

03"我看到 X 了,该补什么"决策树

读 vLLM 代码卡住 是关于"内存 / 块"? → OSTEP 13/15/18/21/22 + PagedAttention 论文 是关于"调度 / batch"? → OSTEP 7-10 + Orca / Sarathi 论文 是关于"并发 / 锁 / 进程"? → OSTEP 28-30 + 4-5 + Python asyncio docs 是关于"GPU / CUDA / kernel"? → CMU 15-418 lec 1-2 + FlashAttention + Triton 都不对? git grep 关键词 + Slack 问

04常用补充材料

05反原则 · 别这么干


这页是常驻参考。书签它,6 个月里你会回来很多次。