已完成操作系统C++ / Linux项目 05

os_lab

把操作系统里抽象的调度、进程、虚拟内存、文件系统和 IO 机制拆成可运行的实验。

实验范围进程 · 内存 · 文件系统 · IO
常用工具strace · perf · gdb
工程形式按主题组织的可复现实验

实验主线

系统调用 → 进程与调度 → 虚拟内存 → malloc / brk / mmap → inode / ext4 / 文件描述符 → 多线程 / 锁 / IO 模型 / 零拷贝。

每个主题都以现象为入口,再用系统工具观察内核行为,最后回到源码和数据结构解释原因。

代表实验

  • CFS 调度与 FCFS、RR、MLFQ 模拟,对比不同调度策略。
  • 用 strace 观察 brk/mmap 路径,用 hexdump、mount 和 inode 实验拆解 ext4。
  • 对照 sendfile 与 read+write,理解零拷贝减少用户态参与的边界。
  • 用并发计数、死锁和自旋锁实验验证竞态与同步代价。

实验原则

仓库的重点是把系统行为留下证据,而不是堆叠术语。实验数据会绑定环境、命令和输入规模,方便之后复现和修正。