前言
这里用来存放《操作系统》课程的 Lecture 笔记。相比单篇总览,把每一讲拆开之后,之后补图、改正文、查某个主题都会舒服很多。
这一组笔记大致可以按五条线读:系统抽象、并发同步、调度、虚拟内存、I/O 与文件系统。读的时候不用急着把每个名词孤立背下来,更重要的是看清楚每一层抽象背后维护了哪些状态,以及这些状态在并发、故障和性能压力下会怎么变化。
阅读入口
系统抽象
- Lecture 01: 操作系统的四个基本概念
- Lecture 02: Threads and Processes
- Lecture 03: Files and I/O
- Lecture 04: IPC, Pipes and Sockets
并发同步
- Lecture 05: Synchronization 1: Concurrency
- Lecture 06: Synchronization 2 - Semaphores and Bounded Buffer
- Lecture 07: Synchronization 3 - Lock Implementation, Atomic Instructions, Monitors
- Lecture 08: Synchronization 4 - Readers/Writers and Language-Level Support
调度
- Lecture 09: Scheduling 1 - Concepts and Classic Policies
- Lecture 10: Scheduling 2 - Fairness, Real Time, and Linux Schedulers
- Lecture 11: Scheduling & Deadlock
- Lecture 12: Scheduling in Modern Computer Systems
虚拟内存
- Lecture 13: Address Translation and Virtual Memory
- Lecture 14: Multi-Level Page Tables, TLBs, and Caches
- Lecture 15: TLB/Cache Interaction and Demand Paging
- Lecture 16: Memory 4 - Page Replacement, Clock, and Thrashing
- Lecture 17: Memory 5 - Memory Management in Modern Computer Systems
I/O 与文件系统
- Lecture 18: I/O - General I/O, Disk, and SSD
- Lecture 19: File System 1 - I/O Performance and File System Design
- Lecture 20: File System Case Studies and Buffering
- Lecture 21: Buffering, Reliability, and Transactions
- Lecture 22: Transactions and Distributed Decision Making
- Lecture 23: Storage and File Systems in Modern Computer Systems
阅读方式
如果只是快速回顾,可以先看每一讲的导读和本讲地图;如果要补细节,再顺着正文里的图和表往下读。操作系统这门课的重点不在于记住某个孤立机制,而在于把“抽象是什么、状态在哪里、谁能修改、出错后怎么办”这几个问题反复问清楚。