虚拟存储器--小结

虚拟存储器是对主存的一个抽象。
支持虚拟存储器的处理器通过使用一种叫做虚拟寻址的间接形式来引用主存。处理器产生一个虚拟地址,在被发送至主存之前,这个地址被翻译成一个物理地址。从虚拟地址空间到物理地址空间翻译要求硬件和软件紧急合作。专门的硬件通过使用页表来翻译虚拟地址,而页表的内容是由操作系统提供。
虚拟存储器提供三个重要的功能。
第一:它在主存中自动缓存最近使用的存放磁盘上的虚拟地址空间的内容。虚拟存储器缓存中的块叫做页。对磁盘上页的引用会触发缺页处理程序,缺页将控制转移到操作系统的一个缺页处理程序。缺页处理程序将页面从磁盘拷贝到主存缓存中。
第二:虚拟存储器简化了存储器管理,简化了链接 进程间共享数据 进程间存储器分配 以及程序加载
第三:虚拟存储器通过在每条页条目中加入保护位,简化存储器的保护。
地址翻译的过程必须和系统中任意硬件缓存的操作集成在一起。大多数页表条目位于L1高速缓存中,但是一个称为TLB条目在芯片上的高速缓存,通常会消除访问在L1页表条目的开销。
现代系统通过将虚拟存储器块和磁盘上的文件组块关联起来,来初始化虚拟存储器组块,这个过程称为存储器映射。存储器映射为共享数据、创建新的进程以及程序加载,提供一种高效的机制,
1 应用mmap函数手工创建和删除虚拟地址空间的区域
2 通过malloc free动态创建和管理虚拟地址空间区域

相关阅读:
虚拟存储器之–垃圾收集
常见的虚拟存储器错误
malloc free函数的用法
malloc的使用方法及注意事项
为什么要使用动态存储器分配(malloc)