virtual-memory_冲突文件_zkx_20240828215908
虚拟内存
虚拟内存地址(Virtual Memory Address)
物理内存地址(Physical Memory Address)
管理虚拟地址与物理地址之间的关系
内存分段
内存分页
页加载
如果内存空间不够,操作系统会把其他正在运行的进程中的「最近没被使用」的内存页面给释放掉
只有在程序运行中,需要用到对应虚拟内存页里面的指令和数据时,再加载到物理内存里面去。
虚拟地址分为两部分,页号和页内偏移。页号作为页表的索引,页表包含物理页每页所在物理内存的基地址
需要很大的内存存储页表
多级页表
把这个 100 多万个「页表项」的单级页表再分页,将页表(一级页表)分为
1024
个页表(二级页表),每个表(二级页表)中包含1024
个「页表项」,形成二级分页如果某个一级页表的页表项没有被用到,也就不需要创建这个页表项对应的二级页表了,即可以在需要时才创建二级页表。
TLB
专门存放程序最常访问的页表项的 Cache,这个 Cache 就是 TLB(Translation Lookaside Buffer) ,通常称为页表缓存、转址旁路缓存、快表
段页式内存管理
先将程序划分为多个有逻辑意义的段,也就是前面提到的分段机制;
接着再把每个段划分为多个页,也就是对分段划分出来的连续空间,再划分固定大小的页;
地址结构就由段号、段内页号和页内位移三部分组成。
最后更新于