学习这门课程您的收获:1、代码抽象能力 2、系统架构能力 3、提升面试竞争能力

*   01 准备篇一:程序如何运行【1.8 小时】/

  *   01 课程内容.mp4 (7.66 MB), 02:06

  *   02 什么是 CPU、内存.mp4 (26.01 MB), 08:53

  *   03 内存详解.mp4 (33.48 MB), 11:19

  *   04 程序执行过程.mp4 (42.91 MB), 11:29

  *   05 计算机硬件.mp4 (33.70 MB), 11:03

  *   06 指令集.mp4 (24.28 MB), 07:52

  *   07 函数调用栈.mp4 (36.98 MB), 13:41

  *   08 寄存器 rbp、rsp 以及 rip.mp4 (45.61 MB), 14:34

  *   09 寄存器 edx、eax、esi、edi.mp4 (47.19 MB), 14:12

  *   10 指令 cmp、jne、jmp 以及标志位寄存器.mp4 (50.31 MB), 10:22

  *   11 for 循环代码对应的汇编指令.mp4 (43.80 MB), 09:45

*   02 准备篇二:CPU、IO 和 OS 如何交互【1.3 小时】/

  *   01 课程内容.mp4 (9.16 MB), 02:29

  *   02 什么是操作系统.mp4 (29.64 MB), 10:04

  *   03 按下计算机启动按钮,会发生什么.mp4 (26.27 MB), 07:48

  *   04 内核态和用户态.mp4 (29.62 MB), 10:48

  *   05 设备控制器.mp4 (35.60 MB), 11:21

  *   06 操作系统和外设通过汇编指令交互.mp4 (32.36 MB), 09:59

  *   07 中断机制-键盘原理.mp4 (44.54 MB), 13:52

  *   08 中断加 DMA 减少 CPU 开销.mp4 (30.50 MB), 10:24

  *   09 系统调用主要解决的就是用户态和内核态的切换.mp4 (19.55 MB), 07:28

  *   10 32和64位操作系统系统调用.mp4 (70.42 MB), 18:50

  *   11 磁盘 IO.mp4 (52.42 MB), 18:06

  *   12 程序异常控制流.mp4 (37.66 MB), 13:48

*   03 准备篇三:ELF 文件【2.9 小时】/

  *   01 C 程序的预处理、编译、汇编以及链接四个阶段.mp4 (57.27 MB), 16:21

  *   02 程序的链接阶段:符号解析.mp4 (88.11 MB), 22:20

  *   03 程序的链接阶段:重定位.mp4 (45.05 MB), 11:16

  *   04 静态链接:链接静态库.mp4 (37.61 MB), 12:08

  *   05 ELF 文件格式之【可重定位目标文件】.mp4 (86.65 MB), 25:22

  *   06 ELF 【可重定位目标文件】格式详解.mp4 (133.07 MB), 20:14

  *   07 【可重定位文件】每个 section 的具体位置.mp4 (79.31 MB), 19:03

  *   08 ELF文件格式之【可执行目标文件】.mp4 (121.42 MB), 27:37

  *   09 一个运行的程序需要多大内存.mp4 (59.64 MB), 20:40

*   04 内存篇一:内存寻址【2.6 小时】/

  *   01 课程内容.mp4 (2.40 MB), 01:10

  *   02 物理寻址 - 最简单寻址方式.mp4 (44.86 MB), 16:09

  *   03 16 位 CPU 如何寻址 20 位内存地址.mp4 (27.58 MB), 10:13

  *   04 8086 处理器的分段寻址.mp4 (35.22 MB), 12:56

  *   05 Linux 两种运行模式:实模式和保护模式.mp4 (41.52 MB), 14:36

  *   06 分段寻址可以被归纳位虚拟寻址.mp4 (35.81 MB), 13:21

  *   07 虚拟寻址降低内存管理的复杂度.mp4 (54.57 MB), 15:30

  *   08 多级页表 - 压缩页表占用内存的大小.mp4 (56.80 MB), 20:43

  *   09 多级分页如何进行地址转换.mp4 (44.52 MB), 16:08

  *   10 64 位系统分页寻址总结.mp4 (40.25 MB), 08:01

*   05 内存篇二:高速缓存【2.6 小时】/

  *   01 课程内容.mp4 (3.35 MB), 01:22

  *   02 时钟周期和主频.mp4 (50.67 MB), 19:38

  *   03 计算机体系结构中的缓存.mp4 (50.60 MB), 17:33

  *   04 局部性原理:时间、空间局部性.mp4 (45.75 MB), 16:18

  *   05 程序局部性影响程序执行的性能.mp4 (36.61 MB), 13:21

  *   06 CPU 高速缓存寻址数据.mp4 (35.98 MB), 12:46

  *   07 6_三种高速缓存.mp4 (76.18 MB), 27:49

  *   08 高速缓存的行替换.mp4 (63.60 MB), 22:55

  *   09 一台真实机器的 CPU 高速缓存.mp4 (63.84 MB), 21:30

  *   10 另一个高速缓存:TLB - 缓存页表.mp4 (36.40 MB), 13:42

  *   11 分页寻址 + TLB + CPU 高速缓存全流程.mp4 (42.51 MB), 15:03

*   06 内存篇三:内存布局【4.2 小时】/

  *   01 虚拟内存布局和物理内存模型内容.mp4 (43.85 MB), 15:41

  *   02 用户态虚拟内存布局.mp4 (58.79 MB), 21:54

  *   03 内存映射 (动态共享库).mp4 (68.43 MB), 24:36

  *   04 内存映射函数实现 mmap 和 mummap.mp4 (43.80 MB), 16:23

  *   05 内存映射区的管理.mp4 (80.79 MB), 24:18

  *   06 内核态虚拟内存布局(一).mp4 (61.19 MB), 20:36

  *   07 内核态虚拟内存布局(二).mp4 (46.43 MB), 16:04

  *   08 虚拟内存布局总结.mp4 (54.29 MB), 08:52

  *   09 内核页表和用户程序页表.mp4 (51.05 MB), 19:52

  *   10 SMP 架构实现:UMA 和 NUMA.mp4 (27.63 MB), 10:12

  *   11 平坦内存模型.mp4 (55.34 MB), 20:57

  *   12 不连续内存模型.mp4 (51.23 MB), 18:05

  *   13 稀疏内存模型.mp4 (80.49 MB), 23:41

  *   14 缺页异常处理程序执行逻辑 - 用户态.mp4 (57.10 MB), 15:06

*   07 内存篇四:内存分配【5.2 小时】/

  *   01 内存分配课程内容.mp4 (14.38 MB), 06:04

  *   02 内存对齐.mp4 (28.83 MB), 10:14

  *   03 如何评估内存分配器的好坏.mp4 (36.19 MB), 14:17

  *   04 实现一个实际的分配器需要考虑的问题.mp4 (73.53 MB), 28:01

  *   05 内存分配器的数据结构 - 空闲链表数组.mp4 (80.56 MB), 29:43

  *   06 用户态内存分配和释放 - malloc 和 free.mp4 (41.92 MB), 14:46

  *   07 ptmalloc 中的分离空闲链表(bins)的组成.mp4 (99.21 MB), 25:42

  *   08 malloc 内存分配和释放流程.mp4 (82.08 MB), 21:53

  *   09 物理内存页帧的分配和释放.mp4 (52.71 MB), 18:21

  *   10 物理内存分配 - 伙伴系统.mp4 (74.74 MB), 22:07

  *   11 页面置换流程以及 LRU 页面置换算法.mp4 (52.87 MB), 18:12

  *   12 逆向映射.mp4 (146.67 MB), 38:45

  *   13 再看缺页异常处理程序处理逻辑.mp4 (47.63 MB), 12:53

  *   14 slab 分配器之 slab 结构.mp4 (66.26 MB), 22:56

  *   15 slab 分配器分配和释放对象的流程.mp4 (68.63 MB), 18:32

  *   16 vmalloc 申请分配非连续物理内存.mp4 (36.42 MB), 12:52

*   08 进程篇一:进程和线程【4.3 小时】/

  *   01 1_进程和程序的关系.mp4 (30.01 MB), 11:12

  *   02 进程运行时的 CPU 上下文.mp4 (38.29 MB), 14:35

  *   03 进程切换【时钟中断】.mp4 (41.38 MB), 15:42

  *   04 0 号进程、1 号进程以及 2 号进程.mp4 (35.45 MB), 12:33

  *   05 task_struct 数据结构总结.mp4 (46.48 MB), 13:32

  *   06 创建进程的过程 (fork 和 exec 系统调动).mp4 (131.80 MB), 32:23

  *   07 为什么需要线程.mp4 (46.60 MB), 16:18

  *   08 线程可以访问的三类数据.mp4 (46.60 MB), 16:18

  *   09 线程创建的详细过程.mp4 (99.81 MB), 23:11

  *   10 用户级线程和内核级线程.mp4 (74.57 MB), 25:30

  *   11 内核线程.mp4 (40.51 MB), 14:39

  *   12 再来看 0、1、2 号进程.mp4 (21.79 MB), 07:58

  *   13 线程的状态.mp4 (65.98 MB), 24:29

  *   14 再次回顾进程和线程.mp4 (14.64 MB), 05:09

  *   15 进程和线程的串讲以及线程池.mp4 (97.59 MB), 25:20

*   09 进程篇二:进程调度【3.0 小时】/

  *   01 进程调度准备知识.mp4 (35.55 MB), 13:30

  *   02 FIFO、SJF 等调度算法(周转时间).mp4 (34.58 MB), 12:28

  *   03 RR 调度算法(响应时间).mp4 (31.04 MB), 11:33

  *   04 CPU 资源和 IO 重叠以提高资源利用率.mp4 (19.75 MB), 07:28

  *   05 多级反馈队列(MLFQ).mp4 (44.06 MB), 15:35

  *   06 多级反馈队列(MLFQ)会产生的问题及其解决方案.mp4 (37.19 MB), 12:59

  *   07 Linux 任务调度算法的数据结构_实时任务.mp4 (26.39 MB), 10:06

  *   08 Linux 任务调度算法的数据结构_完全公平调度.mp4 (54.40 MB), 18:35

  *   09 多级调度队列数据结构实现.mp4 (53.67 MB), 14:52

  *   10 主动调度流程_pick_next_task.mp4 (43.01 MB), 12:08

  *   11 主动调度流程_切换用户态虚拟地址空间.mp4 (57.81 MB), 15:47

  *   12 主动调度流程_切换寄存器和内核栈.mp4 (90.57 MB), 22:08

  *   13 抢占调度流程.mp4 (54.25 MB), 14:31

  *   14 线程切换需不需要刷新 TLB 和 CPU 高速缓存.mp4 (18.44 MB), 07:23

*   10 进程篇三:信号和中断【2.7 小时】/

  *   01 什么是信号.mp4 (56.85 MB), 19:55

  *   02 信号发送需要的数据结构.mp4 (21.93 MB), 08:19

  *   03 信号处理需要的数据结构.mp4 (58.76 MB), 18:47

  *   04 信号发送和处理的总流程.mp4 (42.71 MB), 12:09

  *   05 系统调用时的信号处理.mp4 (48.75 MB), 12:39

  *   06 异步中断.mp4 (22.13 MB), 08:45

  *   07 同步中断以及异常.mp4 (44.59 MB), 16:19

  *   08 中断描述符表 (IDT).mp4 (34.76 MB), 09:34

  *   09 中断处理流程.mp4 (40.31 MB), 14:27

  *   10 用户态和内核态产生异常.mp4 (36.61 MB), 13:51

  *   11 异步中断处理流程及其问题.mp4 (23.03 MB), 08:55

  *   12 硬中断和软中断.mp4 (57.07 MB), 18:29

  *   13 各种上下文切换的文字总结.mp4 (3.17 MB), 01:21

*   11 进程篇四:并发编程【6.6 小时】/

  *   01 内核代码是如何执行的.mp4 (36.11 MB), 14:02

  *   02 中断的禁止和开启.mp4 (43.90 MB), 15:23

  *   03 用户态抢占和内核态抢占.mp4 (31.17 MB), 10:56

  *   04 抢占的禁止和开启.mp4 (48.86 MB), 17:23

  *   05 线程并发安全问题.mp4 (47.67 MB), 14:39

  *   06 导致线程不安全的原因.mp4 (50.00 MB), 14:47

  *   07 临界区.mp4 (30.62 MB), 10:23

  *   08 硬件级别:禁止中断和原子操作.mp4 (35.77 MB), 10:38

  *   09 cas.mp4 (78.35 MB), 18:59

  *   10 CAS 的 ABA 问题.mp4 (25.75 MB), 10:07

  *   11 自旋锁.mp4 (61.59 MB), 18:04

  *   12 CAS 实现自旋锁.mp4 (44.38 MB), 13:27

  *   13 自旋锁饥饿问题及其解决方案.mp4 (36.26 MB), 11:56

  *   14 自旋锁浪费 CPU 的问题及其解决方案.mp4 (74.11 MB), 23:47

  *   15 阻塞互斥锁 vs 自旋锁.mp4 (21.41 MB), 07:03

  *   16 公平锁、非公平锁以及读写锁.mp4 (41.01 MB), 14:25

  *   17 多个没有关联的资源的保护.mp4 (36.97 MB), 11:51

  *   18 多个有关联的资源的保护.mp4 (47.19 MB), 14:45

  *   19 细化锁的粒度可以提高并发性能.mp4 (48.67 MB), 14:33

  *   20 死锁及其避免方法.mp4 (44.92 MB), 12:58

  *   21 活锁及其避免方法.mp4 (56.13 MB), 17:46

  *   22 信号量(Semaphore).mp4 (42.84 MB), 15:35

  *   23 信号量的作用.mp4 (30.71 MB), 09:40

  *   24 生产者消费者模式.mp4 (62.82 MB), 18:28

  *   25 苹果橙子问题.mp4 (43.16 MB), 13:35

  *   26 什么是管程(monitor).mp4 (17.19 MB), 06:59

  *   27 管程实现的生产者消费者.mp4 (41.13 MB), 14:23

  *   28 条件变量的实现.mp4 (41.02 MB), 11:28

  *   29 管程实现生产者消费代码实现.mp4 (69.86 MB), 21:44

*   12 进程篇五:缓存一致性【3.2 小时】/

  *   01 什么是缓存一致性.mp4 (44.02 MB), 16:42

  *   02 CPU 核心之间数据如何传播.mp4 (42.48 MB), 14:48

  *   03 本地读写和总线读写.mp4 (34.01 MB), 11:31

  *   04 MSI 缓存一致性协议(上).mp4 (35.01 MB), 12:58

  *   05 MSI 缓存一致性协议(下).mp4 (51.88 MB), 17:41

  *   06 MESI 缓存一致性协议(2).mp4 (45.62 MB), 16:04

  *   07 MESI 协议具体示例.mp4 (15.03 MB), 05:17

  *   08 总线仲裁.mp4 (25.48 MB), 09:10

  *   09 x86 MESIF 缓存一致性协议.mp4 (20.71 MB), 07:31

  *   10 Store Buffer.mp4 (45.69 MB), 15:45

  *   11 写内存屏障(上).mp4 (29.25 MB), 10:26

  *   12 写内存屏障(下).mp4 (45.09 MB), 15:43

  *   13 失效队列.mp4 (30.27 MB), 10:06

  *   14 读内存屏障.mp4 (27.57 MB), 09:07

  *   15 内屏屏障总结.mp4 (65.13 MB), 22:28

  *   16 lock 前缀指令作为内存屏障.mp4 (48.83 MB), 17:06

*   13 文件篇一:文件系统【3.0 小时】/

  *   01 文件系统课程内容.mp4 (14.85 MB), 05:51

  *   02 拆解机械硬盘.mp4 (106.37 MB), 14:24

  *   03 寻道、旋转和传送时间.mp4 (50.20 MB), 16:43

  *   04 顺序读写和随机读写.mp4 (46.87 MB), 16:49

  *   05 RAID(磁盘阵列).mp4 (43.89 MB), 15:42

  *   06 固态硬盘(SSD).mp4 (29.66 MB), 10:26

  *   07 文件中的数据块.mp4 (37.14 MB), 14:16

  *   08 如何分配数据块给文件.mp4 (53.21 MB), 19:27

  *   09 文件系统(Linux 一切皆文件).mp4 (82.50 MB), 21:48

  *   10 新增磁盘.mp4 (33.72 MB), 08:31

  *   11 磁盘分区.mp4 (39.85 MB), 11:01

  *   12 Centos 支持的文件系统.mp4 (21.13 MB), 05:44

  *   13 文件系统挂载.mp4 (36.62 MB), 09:55

  *   14 文件系统挂载总结.mp4 (39.09 MB), 11:11

*   14 OS 文件篇二:文件读写【3.9 小时】/

  *   01 文件读写路径课程内容.mp4 (18.46 MB), 06:42

  *   02 ext4 文件系统的硬盘布局.mp4 (56.45 MB), 19:37

  *   03 文件组织(inode).mp4 (71.74 MB), 24:11

  *   04 目录的组织.mp4 (61.60 MB), 17:30

  *   05 块组描述符表.mp4 (62.12 MB), 18:42

  *   06 基于 ext4 硬盘布局的文件读写流程准备.mp4 (26.88 MB), 07:10

  *   07 基于 ext4 创建文件目录的过程.mp4 (28.89 MB), 07:05

  *   08 基于 ext4 创建文件的过程.mp4 (50.16 MB), 10:22

  *   09 基于 ext4 读写文件的过程.mp4 (49.83 MB), 10:14

  *   10 虚拟文件系统的数据结构.mp4 (40.37 MB), 13:17

  *   11 虚拟文件系统的操作接口.mp4 (81.33 MB), 16:29

  *   12 文件系统树.mp4 (56.18 MB), 14:23

  *   13 应用程序和 VFS 的交互.mp4 (46.80 MB), 13:05

  *   14 inode 和 dentry 缓存.mp4 (40.99 MB), 09:57

  *   15 open 文件打开流程.mp4 (100.61 MB), 22:22

  *   16 read 和 write 读写文件的流程.mp4 (53.72 MB), 12:42

  *   17 硬链接和软链接.mp4 (70.84 MB), 21:19

*   15 OS 文件篇三:页面缓存【2.6 小时】/

  *   01 页面缓存课程内容.mp4 (22.26 MB), 08:48

  *   02 页面缓存的抽象 address_space.mp4 (46.84 MB), 16:27

  *   03 address_space 中使用基数树维护缓存页.mp4 (48.35 MB), 17:37

  *   04 页面缓存的数据结构及其操作.mp4 (35.54 MB), 10:28

  *   05 带有页面缓存的文件读流程.mp4 (45.11 MB), 10:59

  *   06 带有页面缓存的文件写流程.mp4 (47.63 MB), 14:08

  *   07 再看内存映射的数据结构.mp4 (94.49 MB), 21:37

  *   08 再看内存映射文件的流程.mp4 (82.46 MB), 18:02

  *   09 再看缺页异常处理逻辑.mp4 (78.04 MB), 19:25

  *   10 按需调页.mp4 (52.60 MB), 12:52

  *   11 文件系统组件总结.mp4 (14.79 MB), 04:37

*   16 OS 文件篇四:进程间通信【2.9 小时】/

  *   01 匿名管道和命名管道.mp4 (50.02 MB), 12:39

  *   02 匿名管道的实现原理.mp4 (85.03 MB), 26:43

  *   03 管道依赖的 pipefs 文件系统.mp4 (57.33 MB), 11:07

  *   04 匿名管道底层实现.mp4 (61.14 MB), 15:13

  *   05 命名管道底层实现.mp4 (52.95 MB), 12:51

  *   06 共享内存的使用.mp4 (85.18 MB), 25:56

  *   07 共享内存的底层原理_基于 tmpfs 文件系统.mp4 (121.71 MB), 23:20

  *   08 IPC 中的信号量.mp4 (86.99 MB), 25:54

  *   09 消息队列.mp4 (68.96 MB), 19:20