操作系统原理是计算机体系结构中理解“软件如何驾驭硬件”的核心桥梁,也是许多技术学习者容易感到抽象且难以落地的板块。很多同学在初学阶段往往只背诵了死锁定义、页面置换算法名称,但面对实际开发中遇到的进程死锁、内存溢出或文件 IO 卡顿,无法从底层机制入手排查。这门由陈向群老师主讲的课程,正是为了填补“懂概念”与“会分析”之间的认知断层。它不满足于罗列知识点,而是通过架构拆解,展示操作系统内部各模块是如何协作完成资源调度与管理的,适合具备一定 C 语言基础、理解进程/线程基本概念,但在理解虚拟内存、并发控制或文件系统实现细节时感到困惑的中高阶学习者。

建议的学习路径应遵循“从宏观架构到微观机制”的逻辑。首先,务必吃透第一章关于操作系统定义、作用及典型架构的内容,这是后续所有模块的基石,能帮你建立全局视图。随后,重点攻克第三章的进程控制与线程机制,特别是进程状态转换和线程引入后的实现细节,这是并发编程的底层逻辑,也是调试多线程程序时的关键依据。接着,投入大量时间研究第五、六章的进程互斥与同步机制,涵盖硬件解决方案、软件策略以及 Hoare 和 Mesa 管程模型。这部分内容难度较高,但却是理解数据库锁机制、Go 语言 goroutine 调度等现代技术的前置条件。在内存管理方面,第七、八章的物理内存分配与虚拟存储技术是重中之重,需重点掌握页面置换算法(如工作集算法)及页错误处理流程。最后,第九、十章的文件系统部分,结合 FAT 实例与磁盘空间管理策略,将理论落地到实际存储介质。

学完这套课程,你应当能够独立解释进程上下文切换的完整流程,设计基于信号量或管程的并发算法来解决读者写者问题,并分析特定负载下页面置换策略对性能的影响。在资料配合练习上,视频内容较为紧凑,建议每看完一章(如进程互斥或虚拟存储),立即寻找对应的操作系统编程实验。例如,实现一个简单的内存分配器,或使用 POSIX API 创建线程并处理竞态条件。不要只被动听讲,必须动手编写代码来模拟课程中提到的状态转换和调度逻辑,将抽象的“状态转换图”转化为可执行的程序。通过这种“视频理论 + 代码验证”的闭环,你才能真正掌握操作系统原理,而不止于应付考试。

课程目录

7 - 2 - 物理内存管理(7-18).mp4 [18.4 MB]
6 - 2 - HOARE管程 (8-15).mp4 [24.0 MB]
3 - 6 - 线程机制的实现(11-14).mp4 [32.6 MB]
2 - 3 - 中断与 异常机制 工作原理(16-27).mp4 [45.6 MB]
1 - 4 - 典型操作系统的架构 (11-11).mp4 [32.1 MB]
1 - 2 - 操作系统的定义和作用 (20-13).mp4 [54.3 MB]
7 - 4 - 基本内存管理方案1(9-24).mp4 [23.2 MB]
8 - 1 - 虚拟存储技术(12-09).mp4 [29.6 MB]
8 - 5 - 软件相关策略(18-13).mp4 [48.0 MB]
8 - 7 - 页面置换算法2-工作集算法(17-33).mp4 [45.8 MB]
9 - 2 - 文件的存储介质(8-30).mp4 [22.3 MB]
9 - 4 - 文件控制块及文件目录(13-11).mp4 [34.0 MB]
9 - 6 - 文件系统的实现(13-54).mp4 [35.7 MB]
10 - 8 - 文件系统的两个练习(8-58).mp4 [24.3 MB]
10 - 2 - 文件操作的实现(12-16).mp4 [33.8 MB]
10 - 3 - 文件系统的管理(13-50).mp4 [38.2 MB]
4 - 4 - 交互式系统的调度算法(16-52).mp4 [46.8 MB]
7 - 5 - 基本内存管理方案2(19-41).mp4 [35.5 MB]
10 - 7 - 文件系统的性能3(11-42).mp4 [32.0 MB]
5 - 8 - 读者写者问题(10-37).mp4 [27.7 MB]
3 - 3 - 进程控制(14-18).mp4 [40.6 MB]
3 - 5 - 线程的引入(14-43).mp4 [42.7 MB]
6 - 7 - 典型操作系统中的IPC机制(11-40).mp4 [29.0 MB]
6 - 4 - MESA管程(13-09).mp4 [39.0 MB]
3 - 4 - 关于进程相关概念的讨论(17-40).mp4 [42.3 MB]
10 - 6 - 文件系统的性能2(16-27).mp4 [43.6 MB]
5 - 4 - 进程互斥的硬件解决方案(12-04).mp4 [31.1 MB]
10 - 1 - 文件系统实例——FAT(22-38).mp4 [59.0 MB]
4 - 2 - 设计调度算法要考虑的几个问题(9-01).mp4 [24.9 MB]
8 - 4 - 页错误(Page Fault)(6-14).mp4 [16.6 MB]
8 - 6 - 页面置换算法1(25-29).mp4 [67.2 MB]
9 - 1 - 文件与文件系统(15-28).mp4 [38.7 MB]
9 - 3 - 磁盘空间管理(11-06).mp4 [29.1 MB]
6 - 6 - 进程间通信IPC(10-20).mp4 [33.8 MB]
5 - 1 - 进程的并发执行(12-27).mp4 [31.1 MB]
5 - 3 - 进程互斥的软件解决方案(17-02).mp4 [43.5 MB]
6 - 1 - 管程的基本概念(11-38).mp4 [32.8 MB]
5 - 2 - 进程互斥(9-42).mp4 [25.0 MB]
3 - 2 - 进程状态及状态转换(14-51).mp4 [40.1 MB]
9 - 5 - 文件的物理结构(29-07).mp4 [75.9 MB]
6 - 5 - PTHREAD中的同步机制(8-21).mp4 [25.2 MB]
8 - 8 - 其他相关技术(7-01).mp4 [18.4 MB]
1 - 5 - 操作系统的分类1 (17-17).mp4 [49.4 MB]
1 - 3 - 操作系统的主要特征 (10-30).mp4 [29.2 MB]
4 - 5 - 多级反馈队列调度算法、各种调度算法小结等(13-01).mp4 [31.8 MB]
1 - 1 - 操作系统做了什么?(10-12).mp4 [26.5 MB]
7 - 3 - 伙伴系统(8-42).mp4 [21.4 MB]
2 - 6 - 实例:基于X86的Linux系统调用机制简介(13-23).mp4 [39.6 MB]
1 - 6 - 操作系统的分类2 (18-23).mp4 [52.4 MB]
6 - 3 - 管程的应用(11-23).mp4 [33.4 MB]
3 - 1 - 进程的基本概念(17-40).mp4 [46.1 MB]
2 - 1 - 处理器状态(15-51).mp4 [40.0 MB]
5 - 6 - 信号量及PV操作(11-22).mp4 [29.3 MB]
8 - 3 - 地址转换过程及TLB的引入(11-46).mp4 [31.1 MB]
9 - 7 - 文件系统实例——UNIX(15-58).mp4 [42.2 MB]
5 - 7 - 生产者消费者问题(9-55).mp4 [26.6 MB]
2 - 2 - 中断与异常机制介绍 (14-50).mp4 [40.8 MB]
4 - 3 - 批处理系统的调度算法(13-25).mp4 [36.1 MB]
4 - 6 - Windows 的线程调度算法(14-54).mp4 [38.5 MB]
8 - 2 - 页表及页表项的设计(18-53).mp4 [47.1 MB]
7 - 1 - 基本概念-地址重定位(12-35).mp4 [29.6 MB]
2 - 5 - 系统调用机制(15-35).mp4 [44.5 MB]
2 - 4 - 实例:X86的中断与异常机制(9-48).mp4 [27.9 MB]
12 - 1 - 死锁的基本概念(20分52秒).mp4 [143.3 MB]
10 - 4 - 文件系统的安全性(6-44).mp4 [17.3 MB]
4 - 1 - 处理器调度的相关概念(15-04).mp4 [37.5 MB]
5 - 5 - 进程同步(13-49).mp4 [37.2 MB]
10 - 5 - 文件系统的性能1(18-29).mp4 [48.4 MB]