外观
操作系统
知识脉络
操作系统
├── 进程与线程
│ ├── 进程 vs 线程 vs 协程
│ ├── 进程通信方式(管道/消息队列/共享内存/信号量)
│ ├── 进程调度算法
│ └── 上下文切换
├── 内存管理
│ ├── 虚拟内存
│ ├── 分页/分段
│ ├── 页面置换算法(LRU/FIFO/Clock)
│ └── 内存映射 mmap
├── IO 模型
│ ├── 阻塞IO/非阻塞IO/IO多路复用/异步IO
│ ├── select/poll/epoll 对比
│ ├── epoll 工作原理(ET/LT)
│ └── 零拷贝(sendfile/mmap)
├── 文件系统
│ ├── 文件描述符
│ ├── PageCache
│ └── 磁盘调度
└── 并发控制
├── 互斥锁/自旋锁/读写锁
├── 死锁
└── 信号量知识点清单
| # | 题目 | 频率 | 难度 | 状态 |
|---|---|---|---|---|
| 1 | 进程与线程区别 | 极高 | 基础 | todo |
| 2 | 进程间通信方式 | 高 | 进阶 | todo |
| 3 | epoll原理 | 极高 | 困难 | todo |
| 4 | IO多路复用 | 极高 | 进阶 | todo |
| 5 | 零拷贝原理 | 极高 | 困难 | todo |
| 6 | 虚拟内存原理 | 高 | 进阶 | todo |
| 7 | 页面置换算法 | 中 | 进阶 | todo |
| 8 | 操作系统fork与COW | 高 | 困难 | todo |
| 9 | 用户态与内核态 | 高 | 进阶 | todo |
| 10 | 上下文切换开销 | 高 | 进阶 | todo |
| 11 | mmap原理与应用 | 中 | 困难 | todo |
| 12 | PageCache机制 | 中 | 进阶 | todo |
| 13 | 死锁与处理策略 | 高 | 进阶 | todo |
| 14 | 协程原理 | 中 | 进阶 | todo |
| 15 | 文件描述符 | 中 | 基础 | todo |
口诀速记
- IO模型: "阻非复信异(BIO/NIO/多路复用/信号驱动/AIO)"
- 进程通信: "管消共信套(管道/消息队列/共享内存/信号量/Socket)"
- epoll: "红黑树存fd,就绪链表通知,ET边缘触发更高效"
- 零拷贝: "sendfile省两次CPU拷贝,mmap省一次"
跨域关联
- epoll → Redis单线程为什么快(Redis)
- fork + COW → Redis持久化RDB与AOF(Redis)
- 零拷贝 → Kafka高性能原理(消息队列)
- PageCache → RocketMQ存储原理(消息队列)