虚拟内存、虚拟地址空间和物理地址空间。
地址空间是一个非负整数地址的有序集合。
在一个带虚拟内存的系统中,CPU从一个有N=pow(2,n)
个地址的地址空间中生成虚拟地址,这个地址空间被称为虚拟地址空间。
一个系统还有一个物理地址空间,对应于系统物理内存的M
个字节。
主存中的每个字节都有一个选自虚拟地址空间的虚拟地址和一个选择物理地址空间的物理地址。
【注】
虚拟内存的基本思想:
允许每个数据对象有多个独立的地址,其中每个地址都选自一个不同的地址空间。
为了更加有效地管理内存并且少出错,现代系统提供了一种对主存的抽象概念——虚拟内存(VM)。它为每个进程提供了一个大的、一致的和私有的地址空间。
虚拟内存是操作系统的物理内存和进程之间的中间层。
虚拟内存三个能力:
(1)它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,高效的使用了主存。
(2)它为每个进程提供了一致的地址空间,简化了内存管理。
(3)它保护了每个进程的地址空间不被其他进程所破坏。
1.虚拟内存作为缓存的工具
虚拟内存被组织为一个由存放在磁盘上的N个连续的字节大小的单元组成的数组;
虚拟内存可以结合磁盘和物理内存的优势为进程提供看起来速度足够快并且容量足够大的存储;
2.虚拟内存作为内存管理的工具
虚拟内存可以为进程提供独立的内存空间并引入多层的页表结构将虚拟内存翻译成物理内存,进程之间可以共享物理内存减少开销,也能简化程序的链接、装载以及内存分配过程;
3.虚拟村村作为内存保护的工具
虚拟内存可以控制进程对物理内存的访问,隔离不同进程的访问权限,提高系统的安全性;