虚拟存储器(Virtual Memory)是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。就是说,虚拟存储器并不是实际的内存,它的大小比内存空间大得多;用户感觉所能使用的“内存”非常大,这是操作系统对逻辑内存的扩充。
实现虚拟存储技术的物质基础是二级存储器结构和动态地址转换机构。经过操作系统的改造,将内存和外存有机地联系在一起,在用户面前呈现一个足以满足编程需要的特大内存空间。
虚拟存储器实质上是把用户地址空间和实际的存储空间区分开来,当作两个不同的概念。动态地址转换机构在程序运行时把逻辑地址转换成物理地址,以实现动态定位。
应注意,虚拟存储器虽然给用户提供了特大地址空间,用户在编程时一般不必考虑可用空间有多大,但虚拟存储器的容量不是无限大的。它主要受到两方面的限制:
① 指令中表示地址的字长。机器指令中表示地址的二进制位数是有限的,如果地址单元以字节编址,且表示地址的字长是16位,则可以表示的地址空间最大是64KB。如果表示地址的字长是32位,则可以表示的地址空间最大是4GB。
② 外存的容量。从实现观点来看,用户的程序和数据都必须完整地保存在外存(如硬盘)中。然而,外存容量、传送速度和使用频率等方面都受到物理因素的限制。就是说,磁盘的容量有限,并非真正“无穷大”,其传送速度也不是“无限快”,所以,虚拟空间不可能无限大。
虚拟存储器的特征
虚拟存储器的特征可以用16个字来概括:虚拟扩充、部分装入、离散分配、多次对换。
对于虚拟存储器这个基本概念应从以下4个方面进行理解,这些也是虚拟存储器所具有的基本特征:
① 虚拟扩充
虚拟存储器不是扩大物理内存空间,而是扩充逻辑内存容量。就是说,用户编程时所用到的地址空间可以远大于实际内存的容量。例如,实际内存只有1MB,而用户程序和数据所用的空间却可以达到10MB或者更多。所以,用户“感觉”内存扩大了。
② 部分装入
每个进程不是全部一次性地装入内存,而是分成若干部分。当进程要执行时,只需将当前运行需要用到的那部分程序和数据装入内存。以后在运行过程中用到其他部分时,再分别把那些部分从外存调入内存。
③ 离散分配
一个进程分成多个部分,它们没有被全部装入内存。即使装入内存的那部分也不必占用连续的内存空间。这样,一个进程在内存的部分可能散布在内存的不同地方,彼此并不连续。这样做,不仅可避免内存空间的浪费,而且为进程动态调入内存提供方便。
④ 多次对换
在一个进程运行期间,它所需的全部程序和数据分成多次调入内存。每次调入一部分,只解决当前需要,而在内存的那些暂时不被使用的程序和数据,可换出到外存的对换区;甚至把暂时不能运行的进程在内存的全部映像都换出到对换区,以腾出尽量多的内存空间供可运行的进程使用。被调出的程序和数据在需要时可以重新调入内存中。
虚拟存储器根据地址空间的结构不同可以分为分页虚拟存储器和分段虚拟存储器两类。
责任编辑人:CC
-
存储器
+关注
关注
38文章
7484浏览量
163763 -
虚拟仪器
+关注
关注
22文章
775浏览量
87323 -
虚拟存储器
+关注
关注
0文章
12浏览量
8782
发布评论请先 登录
相关推荐
评论