
书: https://pan.baidu.com/s/1A6ZLSPMbCiZ-L4eRucUvXQ?pwd=kt7i
一、操作系统哲学
- “操作系统的核心使命是‘虚拟化’(Virtualization)——将物理资源(CPU、内存、磁盘)抽象为更易用的虚拟形式。”
- “操作系统通过‘机制’(Mechanism)实现功能(如上下文切换),通过‘策略’(Policy)决定如何调度资源(如CPU调度算法)。”
二、进程与线程
- “进程是运行中的程序实例,拥有独立的地址空间;线程是进程内的执行单元,共享同一地址空间。”
- “上下文切换(Context Switch)保存当前进程状态(寄存器、PC值)并恢复目标进程状态,由内核调度器触发。”
- “
fork()
系统调用创建子进程,exec()
加载新程序到当前进程空间,二者组合实现Shell运行命令。”
三、CPU调度
- “调度指标:周转时间(Turnaround Time)、响应时间(Response Time)、公平性(Fairness)需权衡。”
- “多级反馈队列(MLFQ)通过动态优先级平衡交互式任务和批处理任务的性能需求。”
四、内存管理
- “地址转换(Address Translation)将虚拟地址映射到物理地址,硬件(MMU)和操作系统(页表)协同完成。”
- “分页(Paging)解决内存碎片问题,但存在页表开销;TLB(快表)缓存常用映射以加速查询。”
- “页面置换算法:FIFO(简单但有Belady异常)、LRU(理想但实现代价高)、时钟算法(近似LRU)。”
五、并发与同步
- “临界区问题(Critical Section)的解决需满足互斥(Mutual Exclusion)、进步(Progress)和有限等待(Bounded Waiting)。”
- “锁(Lock)的实现方式:自旋(Spinlock,浪费CPU但低延迟)、阻塞(Blocking,节省CPU但上下文切换开销)。”
- “条件变量(Condition Variable)允许线程在条件不满足时睡眠,通过
wait()
和signal()
同步。”
六、持久化:文件与存储
- “文件系统是‘持久数据的虚拟化’,通过inode结构管理文件元数据(权限、块位置等)。”
- “崩溃一致性(Crash Consistency)问题:日志(Journaling)或写时复制(Copy-on-Write)保证磁盘状态正确。”
- “RAID技术通过冗余(如镜像、奇偶校验)提升磁盘可靠性和性能。”
七、分布式系统
- “分布式系统的挑战:部分失败(Partial Failure)、不可靠网络、时钟不同步。”
八、安全与隔离
- “用户态与内核态的隔离通过CPU特权级(Privilege Mode)实现,系统调用(Syscall)是唯一的合法入口。”
九、性能优化
- “局部性原理(Locality)是缓存设计的核心:时间局部性(重复访问)和空间局部性(邻近访问)。”
十、设计原则
- “好的系统设计遵循‘端到端原则’(End-to-End Argument):核心功能应由最高层实现,底层仅提供通用支持。”