虚拟内存、页表、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