谈到内存分页,就不得不说到虚拟内存。虚拟内存是操作系统为了解决物理内存不足而想出的一个解决方案,用于解决如进程占用了5G的内存(实际再访问和使用的少于4G),实际物理内存只有4G的状况。
1.理解的名词:
页表:作为虚拟地址到物理地址的映射表
页面置换:当访问的页不在物理内存时,操作系统发生缺页中断,将页从磁盘置换到物理内存上,并且更新页表
快表(TLB):由于页表还是存储在内存上访问相对寄存器来说较慢,cpu内置了一个页面缓冲寄存器,作为快速的查看与映射虚拟地址到物理地址。
页大小:内存与磁盘间交互的最小单位为页(4KB),由于虚拟地址到物理地址间存在映射,因此在给进程分配内存时,可以是不连续的页,也避免了一部分的内存碎片问题。
2.硬件的整个流程可以用这张图比较好的解释: