虚拟内存(VM)
2019-01-13 本文已影响0人
我就是我啊
虚拟存储出现的动机:把程序员从大量繁琐的存储管理工作中解放出来,使得程序员编程时不用管主存容量的大小
基本思想:把地址空间和主存容量的概念区分开来。程序员在地址空间里编写程序,而程序则在真正的内存中运行。由一个专门的机制(操作系统)来实现地址空间和实际主存直接的映射。
虚拟内存提供了三个重要的能力:1)它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效的使用了主存。 2)它为每个进程提供了一致的地址空间,从而简化了内存管理。3)它保护了每个进程的地址空间不被其他程序破坏。
分页
基本思想:
内存被分成固定长且比较小的存储快(页框,实页,物理页)
每个进程也被划分成固定长的程序块(页,虚页,逻辑页)
程序块可装到存储器中可用的存储块中
无需用连续页框来存放一个进程
操作系统为每个进程生成一个页表
通过页表(page table)实现逻辑地址向物理地址转换
逻辑地址:程序中指令所用地址(进程所在的地址空间),也称为虚拟地址(VA)
物理地址(PA):存放指令或数据的实际内存地址。
不需要将一个进程的全部都装入内存,根据程序访问的局部性可知:可把当前活跃的页面调入主存,其余留在磁盘上。局部性原则保证了在任意时刻,程序将趋向于在一个较小的活动页面集合上工作。