Перейти к содержимому

虚拟内存、页表、MMU 与 TLB 完整原理 | 虚拟内存到底是怎么工作的?从虚拟地址到物理地址, 程序看到的内存地址其实是“假的”?

芯片园地

0:00 / 0:00

虚拟内存、页表、MMU 与 TLB 完整原理 | 虚拟内存到底是怎么工作的?从虚拟地址到物理地址, 程序看到的内存地址其实是“假的”?

29 просмотров · 1 день назад
芯片园地
76 подписчиков
29 просмотров · 1 день назад
程序运行时看到的内存地址,通常并不是真正的 RAM 物理地址。 那么,一个程序产生的虚拟地址 Virtual Address,究竟是怎样一步一步变成真正的物理地址 Physical Address的? 本期我们从 CPU 与操作系统的交界处出发,完整讲解现代计算机最重要的机制之一——虚拟内存 Virtual Memory。 你会理解: 虚拟地址与物理地址有什么区别;为什么每个进程都可以拥有自己的地址空间;什么是 Page 和 Page Frame;虚拟地址为什么要拆成 Page Number 和 Offset;Page Table 如何建立映射;MMU 怎样完成地址转换;Page Table Walk 为什么会影响性能;TLB 为什么能够加速地址转换;以及 TLB 与 CPU Cache 到底有什么区别。 最后,我们会通过一个完整实例,把: Virtual Address → TLB → MMU → Page Table → Physical Address → Cache / RAM 整个过程连接起来。 这是虚拟内存系列的第一部分。 下一部分将继续进入更核心的操作系统机制: Page Fault、Demand Paging、Memory Protection、Shared Memory、Copy-on-Write。 Gate & Kernel —— 从程序代码一路深入到操作系统、CPU 和真实硬件。 #虚拟内存 #VirtualMemory #操作系统 #CPU #计算机原理 #计算机组成原理 #内存管理 #MMU #TLB #页表 #PageTable #PageFault #Linux #Kernel #计算机科学 #程序员 #编程 #GateAndKernel 00:00 虚拟内存是如何工作的? 01:06 为什么计算机需要虚拟内存? 02:06 虚拟地址与物理地址 03:07 每个进程都有自己的地址空间 03:53 Page 与 Page Frame 05:00 虚拟地址:页号与偏移量 06:01 Page Table 如何保存映射关系 07:01 MMU 如何完成地址转换 07:54 为什么页表会非常大? 08:50 什么是 Page Table Walk? 09:39 TLB 如何加速地址转换? 10:36 TLB 与 CPU Cache 有什么区别? 11:37 一个完整的虚拟地址转换实例 13:00 为什么虚拟内存如此强大? 13:56 总结:从虚拟地址到真实 RAM