操作系统#
知识脉络#
操作系统
├── 进程与线程
│ ├── 进程 vs 线程 vs 协程
│ ├── 进程通信方式(管道/消息队列/共享内存/信号量)
│ ├── 进程调度算法
│ └── 上下文切换
├── 内存管理
│ ├── 虚拟内存
│ ├── 分页/分段
│ ├── 页面置换算法(LRU/FIFO/Clock)
│ └── 内存映射 mmap
├── IO 模型
│ ├── 阻塞IO/非阻塞IO/IO多路复用/异步IO
│ ├── select/poll/epoll 对比
│ ├── epoll 工作原理(ET/LT)
│ └── 零拷贝(sendfile/mmap)
├── 文件系统
│ ├── 文件描述符
│ ├── PageCache
│ └── 磁盘调度
└── 并发控制
├── 互斥锁/自旋锁/读写锁
├── 死锁
└── 信号量
plaintext
知识点清单#
口诀速记#
- IO模型: “阻非复信异(BIO/NIO/多路复用/信号驱动/AIO)”
- 进程通信: “管消共信套(管道/消息队列/共享内存/信号量/Socket)”
- epoll: “红黑树存fd,就绪链表通知,ET边缘触发更高效”
- 零拷贝: “sendfile省两次CPU拷贝,mmap省一次”
- 调度算法: “先短轮优多(FCFS/SJF/RR/优先级/MLFQ),Linux用CFS红黑树比vruntime”
- 分页分段: “页等长无外碎、段变长有语义,段页式先分段再分页”
- 进程回收: “僵尸=子死父没wait占PID,孤儿=父先死被init收养”
跨域关联#