虚拟存储映射表
❶ 内存映射是怎么回事
内存映射文件是由一个文件到一块内存的映射,使进程虚拟地址空间的某个区域与磁盘上某个文件的部分或全部内容的建立映射。
建立映射后,通过该区域可以直接对被映射的磁盘文件进行访问.而不必执行文件I/O操作也无需对文件内容进行缓冲处理。
就好像整个被映射的文件都加载到了内存一样,因此内存文件映射非常适合于用来管理大文件。
内存映射文件对程序的提速,只在处理大文件或非常频繁的文件读写操作时效果才明显。
通过内存映射,相当于将磁盘上的文件所在空间建立成一块虚拟内存,程序访问时可按内存的方式进行,省去了普通io方式的一些环节,其实真正要读写操作时,会进行换页,将这些个“虚拟内存”读到物理内存中。
总之,内存映射文件是应用虚拟内存的技术来达到加速处理的
❷ 如何解决服务器虚拟化中遇到的存储问题
但也因为虚拟化的特性,为承载环境中不断增长的虚拟机,需要扩容存储以满足性能与容量的使用需求。IT经理们已经发现,那些因服务器虚拟化所节省的资金都逐渐投入存储购买的方案上了。 服务器虚拟化因虚拟机蔓延、虚拟机中用于备份与灾难恢复软件配置的问题,让许多组织彻底改变了原有的数据备份与灾难恢复策略。一些厂商致力于服务器虚拟化存储问题,提供包括存储虚拟化、重复数据删除与自动化精简配置等解决方案。 服务器虚拟化存储问题出现在数据中心虚拟化环境中传统的物理存储技术。导致虚拟服务器蔓延的部分原因,在于虚拟服务器可能比物理服务器多消耗约30%左右的磁盘空间。还可能存在虚拟机“I/O 搅拌机”问题:传统存储架构无法有效管虚拟机产生的混杂模式随机I/O。虚拟化环境下的虚拟存储管理远比传统环境复杂——管理虚拟机就意味着管理存储空间。 解决服务器虚拟化存储问题 作为一名IT经理,你拥有解决此类服务器虚拟化存储问题的几个选项,我们从一些实用性较低的方案开始介绍。其中一项便是以更慢的速度部署虚拟机。你可以在每台宿主上运行更少的虚拟机,降低“I/O混合器”问题出现的可能性。另外一个方法则是提供额外存储,但价格不菲。 一个更好的选择是在采购存储设备时,选择更智能的型号并引入诸如存储虚拟化,重复数据删除与自动化精简配置技术。采用这一战略意味着新技术的应用,建立与新产商的合作关系。 将存储虚拟化作为解决方案 许多分析师与存储提供商推荐存储虚拟化,作为服务器虚拟化存储问题的解决方案。即使没有出现问题,存储虚拟化也可以减少数据中心开支,提高商业灵活性并成为任何私有云的重要组件之一。 概念上来说,存储虚拟化类似服务器虚拟化。将物理存储系统抽象,隐藏复杂的物理存储设备。存储虚拟化将来自于多个网络存储设备的资源整合为资源池,对外部来说,相当于单个存储设备,连同虚拟化的磁盘、块、磁带系统与文件系统。存储虚拟化的一个优势便是该技术可以帮助存储管理员管理存储设备,提高执行诸如备份/恢复与归档任务的效率。 存储虚拟化架构维护着一份虚拟磁盘与其他物理存储的映射表。虚拟存储软件层(逻辑抽象层)介于物理存储系统与运行的虚拟服务器之间。当虚拟服务器需要访问数据时,虚拟存储抽象层提供虚拟磁盘与物理存储设备之间的映射,并在主机与物理存储间传输数据。 只要理解了服务器虚拟化技术,存储虚拟化的区别仅在于采用怎样的技术来实现。容易混淆的主要还是在于存储提供商用于实现存储虚拟化的不同方式,可能直接通过存储控制器也可能通过SAN应用程序。
❸ 虚拟存储的实现方式
目前实现虚拟存储主要分为如下几种: 服务器厂商会在服务器端实施虚拟存储。同样,软件厂商也会在服务器平台上实施虚拟存储。这些虚拟存储的实施都是通过服务器端将镜像映射到外围存储设备上,除了分配数据外,对外围存储设备没有任何控制。服务器端一般是通过逻辑卷管理来实现虚拟存储技术。逻辑卷管理为从物理存储映射到逻辑上的卷提供了一个虚拟层。服务器只需要处理逻辑卷,而不用管理存储设备的物理参数。
用这种构建虚拟存储系统,服务器端是一性能瓶颈,因此在多媒体处理领域几乎很少采用。 另一种实施虚拟的地方是存储设备本身。这种虚拟存储一般是存储厂商实施的,但是很可能使用厂商独家的存储产品。为避免这种不兼容性,厂商也许会和服务器、软件或网络厂商进行合作。当虚拟存储实施在设备端时,逻辑(虚拟)环境和物理设备同在一个控制范围中,这样做的益处在于:虚拟磁盘高度有效地使用磁盘容量,虚拟磁带高度有效地使用磁带介质。
在存储子系统端的虚拟存储设备主要通过大规模的RAID子系统和多个I/O通道连接到服务器上,智能控制器提供LUN访问控制、缓存和其他如数据复制等的管理功能。这种方式的优点在于存储设备管理员对设备有完全的控制权,而且通过与服务器系统分开,可以将存储的管理与多种服务器操作系统隔离,并且可以很容易地调整硬件参数。
网络厂商会在网络设备端实施虚拟存储,通过网络将逻辑镜像映射到外围存储设备,除了分配数据外,对外围存储设备没有任何控制。在网络端实施虚拟存储具有其合理性,因为它的实施既不是在服务器端,也不是在存储设备端,而是介于两个环境之间,可能是最“开放”的虚拟实施环境,最有可能支持任何的服务器、操作系统、应用和存储设备。从技术上讲,在网络端实施虚拟存储的结构形式有以下两种:即对称式与非对称式虚拟存储。
从目前的虚拟存储技术和产品的实际情况来看,基于主机和基于存储的方法对于初期的采用者来说魅力最大,因为他们不需要任何附加硬件,但对于异构存储系统和操作系统而言,系统的运行效果并不是很好。基于互联设备的方法处于两者之间,它回避了一些安全性问题,存储虚拟化的功能较强,能减轻单一主机的负载,同时可获得很好的可扩充性。
不管采用何种虚拟存储技术,其目的都使为了提供一个高性能、安全、稳定、可靠、可扩展的存储网络平台,满足节目制作网络系统的苛刻要求。根据综合的性能价格比来说,一般情况下,在基于主机和基于存储设备的虚拟存储技术能够保证系统的数据处理能力要求时,优先考虑,因为这两种虚拟存储技术构架方便、管理简单、维护容易、产品相对成熟、性能价格比高。在单纯的基于存储设备的虚拟存储技术无法保证存储系统性能要求的情况下,我们可以考虑采用基于互连设备的虚拟存储技术。
❹ 如何解决服务器虚拟化中的存储问题
但也因为虚拟化的特性,为承载环境中不断增长的虚拟机,需要扩容存储以满足性能与容量的使用需求。IT经理们已经发现,那些因服务器虚拟化所节省的资金都逐渐投入存储购买的方案上了。 服务器虚拟化因虚拟机蔓延、虚拟机中用于备份与灾难恢复软件配置的问题,让许多组织彻底改变了原有的数据备份与灾难恢复策略。EMC、Hitachi Data System、IBM、NetApp和Dell等都致力于服务器虚拟化存储问题,提供包括存储虚拟化、重复数据删除与自动化精简配置等解决方案。 服务器虚拟化存储问题出现在数据中心虚拟化环境中传统的物理存储技术。导致虚拟服务器蔓延的部分原因,在于虚拟服务器可能比物理服务器多消耗约30%左右的磁盘空间。还可能存在虚拟机“I/O 搅拌机”问题:传统存储架构无法有效管虚拟机产生的混杂模式随机I/O。虚拟化环境下的虚拟存储管理远比传统环境复杂——管理虚拟机就意味着管理存储空间。解决服务器虚拟化存储问题 作为一名IT经理,你拥有解决此类服务器虚拟化存储问题的几个选项,我们从一些实用性较低的方案开始介绍。其中一项便是以更慢的速度部署虚拟机。你可以在每台宿主上运行更少的虚拟机,降低“I/O混合器”问题出现的可能性。另外一个方法则是提供额外存储,但价格不菲。 一个更好的选择是在采购存储设备时,选择更智能的型号并引入诸如存储虚拟化,重复数据删除与自动化精简配置技术。采用这一战略意味着新技术的应用,建立与新产商的合作关系,例如Vistor、DataCore与FalconStor。将存储虚拟化作为解决方案 许多分析师与存储提供商推荐存储虚拟化,作为服务器虚拟化存储问题的解决方案。即使没有出现问题,存储虚拟化也可以减少数据中心开支,提高商业灵活性并成为任何私有云的重要组件之一。 概念上来说,存储虚拟化类似服务器虚拟化。将物理存储系统抽象,隐藏复杂的物理存储设备。存储虚拟化将来自于多个网络存储设备的资源整合为资源池,对外部来说,相当于单个存储设备,连同虚拟化的磁盘、块、磁带系统与文件系统。存储虚拟化的一个优势便是该技术可以帮助存储管理员管理存储设备,提高执行诸如备份/恢复与归档任务的效率。 存储虚拟化架构维护着一份虚拟磁盘与其他物理存储的映射表。虚拟存储软件层(逻辑抽象层)介于物理存储系统与运行的虚拟服务器之间。当虚拟服务器需要访问数据时,虚拟存储抽象层提供虚拟磁盘与物理存储设备之间的映射,并在主机与物理存储间传输数据。 只要理解了服务器虚拟化技术,存储虚拟化的区别仅在于采用怎样的技术来实现。容易混淆的主要还是在于存储提供商用于实现存储虚拟化的不同方式,可能直接通过存储控制器也可能通过SAN应用程序。同样的,某些部署存储虚拟化将命令和数据一起存放(in-band)而其他可能将命令与数据路径分离(out-of-band)。 存储虚拟化通过许多技术实现,可以是基于软件、主机、应用或基于网络的。基于主机的技术提供了一个虚拟化层,并扮演为应用程序提供单独存储驱动分区的角色。基于软件的技术管理着基于存储网络的硬件设施。基于网络的技术与基于软件的技术类似,但工作于网络交换层。 存储虚拟化技术也有一些缺陷。实现基于主机的存储虚拟化工具实际上就是卷管理器,而且已经流传了好多年。服务器上的卷管理器用于配置多个磁盘并将其作为单一资源管理,可以在需要的时候按需分割,但这样的配置需要在每台服务器上配置。此解决方式最适合小型系统使用。 基于软件的技术,每台主机仅需要通过应用软件查询是否有存储单元可用,而软件将主机需求重定向至存储单元。因为基于软件的应用通过同样的链路写入块数据与控制信息(metadata),所以可能存有潜在瓶颈,影响主机数据传输的速度。为了降低延迟,应用程序通常需要维护用于读取与写入操作的缓存,这也增加了其应用的价格。服务器虚拟化存储创新:自动化精简配置与重复数据删除 存储技术的两个创新,自动化精简配置与重复数据删除,同样是减少服务器虚拟化环境对存储容量需求的解决方案。这两项革新可以与存储虚拟化结合,以提供牢固可靠的存储容量控制保障。 自动精简配置让存储“走的更远”,可减少已分配但没有使用的容量。其功能在于对数据块按需分配,而不是对所有容量需求进行预先分配。此方法可以减少几乎所有空白空间,帮助避免利用率低下的情况出现,通常可以降低10%的磁盘开销,避免出现分配大量存储空间给某些独立服务器,却一直没有使用的情况。 在许多服务器部署需求中,精简配置可通过普通存储资源池提供应用所需的存储空间。在这样的条件下,精简配置可以与存储虚拟化综合应用。 重复数据删除从整体上检测与删除位于存储介质或文件系统中的重复数据。检测重复数据可在文件、字节或块级别进行。重复数据删除技术通过确定相同的数据段,并通过一份简单的拷贝替代那些重复数据。例如,文件系统中有一份相同的文档,在50个文件夹(文件)中,可以通过一份单独的拷贝与49个链接来替代原文件。 重复数据删除可以应用与服务器虚拟化环境中以减少存储需求。每个虚拟服务器包含在一个文件中,有时文件会变得很大。虚拟服务器的一个功能便是,系统管理员可以在某些时候停下虚拟机,复制并备份。其可以在之后重启,恢复上线。这些备份文件存储于文件服务器的某处,通常在文件中会有重复数据。没有重复数据删除技术支持,很容易使得备份所需的存储空间急剧增长。改变购买存储设备的观念 即使通过存储虚拟化,重复数据删除与精简配置可以缓解存储数容量增长的速度,组织也可能需要改变其存储解决方案购买标准。例如,如果你购买的存储支持重复数据删除,你可能不再需要配置原先规划中那么多的存储容量。支持自动化精简配置,存储容量利用率可以自动提高并接近100%,而不需要管理员费心操作维护。 传统存储购买之前,需要评估满足负载所需的存储能力基线、三年时间存储潜在增长率、存储扩展能力与解决存储配置文件,还有拟定相关的采购合同。以存储虚拟化与云计算的优势,购买更大容量的传统存储将越来越不实际,尤其在预算仍是购买存储最大的限制的情况下。以下是一些简单的存储购买指导: 除非设计中明确说明,不要购买仅能解决单一问题的存储方案。这样的做法将导致购买的存储架构无法与其他系统共享使用。 ·关注那些支持多协议并提供更高灵活性的存储解决方案。 ·考虑存储解决方案所能支持的应用/负载范围。 ·了解能够解决存储问题的技术与方案,例如重复数据删除与自动化精简配置等。 ·了解可以降低系统管理成本的存储管理软件与自动化工具。 许多组织都已经在内部环境中多少实施了服务器虚拟化,并考虑如何在现有存储硬件与服务器上实现私有云。存储预算应用于购买合适的硬件或软件,这点十分重要。不要将仅将注意力集中在低价格上。相反,以业务问题为出发点,提供解决问题最有价值的存储解决方案才是王道。
❺ linux虚拟地址,地址映射表,物理内存与虚拟内存的关系
内存是一种存储设备,现在一般是DDR SDRAM,地址是用来标记内存的数据的。在操作系统中物理内存指实际的DDR SDRAM,而虚拟内存指的是在硬盘中的缓存,windows中是页面文件,linux中是swap分区。cpu产生的地址是虚拟地址也可以称作有效地址,而在cpu外地址线上的信号称作实际地址或物理地址。这2类地址有某种对应关系,由操作系统管理。如果是x86架构的话,物理地址和虚拟地址中间还有线性地址的概念。
❻ 虚拟内存映射是怎么回事块映射和分页哪个好
楼主说的块映射
我不太明白..
就windows虚拟内存来说...使用虚拟内存可以提高系统性能,缓存经常需要读取的内容
引用:
http://wiki.ccw.com.cn/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98
如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。
❼ linux为什么主要采用分页机制来实现虚拟存储管理
1 分页机制
在虚拟内存中,页表是个映射表的概念, 即从进程能理解的线性地址(linear address)映射到存储器上的物理地址(phisical address).
很显然,这个页表是需要常驻内存的东西, 以应对频繁的查询映射需要(实际上,现代支持VM的处理器都有一个叫TLB的硬件级页表缓存部件,本文不讨论)。
1.1 为什么使用多级页表来完成映射
但是为什么要使用多级页表来完成映射呢?
用来将虚拟地址映射到物理地址的数据结构称为页表, 实现两个地址空间的关联最容易的方式是使用数组, 对虚拟地址空间中的每一页, 都分配一个数组项. 该数组指向与之关联的页帧, 但这会引发一个问题, 例如, IA-32体系结构使用4KB大小的页, 在虚拟地址空间为4GB的前提下, 则需要包含100万项的页表. 这个问题在64位体系结构下, 情况会更加糟糕. 而每个进程都需要自身的页表, 这回导致系统中大量的所有内存都用来保存页表.
设想一个典型的32位的X86系统,它的虚拟内存用户空间(user space)大小为3G, 并且典型的一个页表项(page table entry, pte)大小为4 bytes,每一个页(page)大小为4k bytes。那么这3G空间一共有(3G/4k=)786432个页面,每个页面需要一个pte来保存映射信息,这样一共需要786432个pte!
如何存储这些信息呢?一个直观的做法是用数组来存储,这样每个页能存储(4k/4=)1K个,这样一共需要(786432/1k=)768个连续的物理页面(phsical page)。而且,这只是一个进程,如果要存放所有N个进程,这个数目还要乘上N! 这是个巨大的数目,哪怕内存能提供这样数量的空间,要找到连续768个连续的物理页面在系统运行一段时间后碎片化的情况下,也是不现实的。
为减少页表的大小并容许忽略不需要的区域, 计算机体系结构的涉及会将虚拟地址分成多个部分. 同时虚拟地址空间的大部分们区域都没有使用, 因而页没有关联到页帧, 那么就可以使用功能相同但内存用量少的多的模型: 多级页表
但是新的问题来了, 到底采用几级页表合适呢?
1.2 32位系统中2级页表
从80386开始, intel处理器的分页单元是4KB的页, 32位的地址空间被分为3部分
单元
描述
页目录表Directory 最高10位
页中间表Table 中间10位
页内偏移 最低12位
即页表被划分为页目录表Directory和页中间表Tabl两个部分
此种情况下, 线性地址的转换分为两步完成.
第一步, 基于两级转换表(页目录表和页中间表), 最终查找到地址所在的页帧
第二步, 基于偏移, 在所在的页帧中查找到对应偏移的物理地址
使用这种二级页表可以有效的减少每个进程页表所需的RAM的数量. 如果使用简单的一级页表, 那将需要高达220个页表, 假设每项4B, 则共需要占用220?4B=4MB的RAM来表示每个进程的页表. 当然我们并不需要映射所有的线性地址空间(32位机器上线性地址空间为4GB), 内核通常只为进程实际使用的那些虚拟内存区请求页表来减少内存使用量.
1.3 64位系统中的分页
正常来说, 对于32位的系统两级页表已经足够了, 但是对于64位系统的计算机, 这远远不够.
首先假设一个大小为4KB的标准页. 因为1KB覆盖210个地址的范围, 4KB覆盖212个地址, 所以offset字段需要12位.
这样线性地址空间就剩下64-12=52位分配给页中间表Table和页目录表Directory. 如果我们现在决定仅仅使用64位中的48位来寻址(这个限制其实已经足够了, 2^48=256TB, 即可达到256TB的寻址空间). 剩下的48-12=36位被分配给Table和Directory字段. 即使我们现在决定位两个字段各预留18位, 那么每个进程的页目录和页表都包含218个项, 即超过256000个项.
基于这个原因, 所有64位处理器的硬件分页系统都使用了额外的分页级别. 使用的级别取决于处理器的类型
平台名称
页大小
寻址所使用的位数
分页级别数
线性地址分级
alpha 8KB 43 3 10 + 10 + 10 + 13
ia64 4KB 39 3 9 + 9 + 9 + 12
ppc64 4KB 41 3 10 + 10 + 9 + 12
sh64 4KB 41 3 10 + 10 + 9 + 12
x86_64 4KB 48 4 9 + 9 + 9 + 9 + 12
❽ 什么是虚拟存储器它的原理是是什么
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
原理:
①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
②如该组号已在主存内,则转而执行;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
④从地址变换表读出与逻辑组号a对应的物理组号a。
⑤从物理组号a和组内字节地址b得到物理地址。
⑥根据物理地址从主存中存取必要的信息。
(8)虚拟存储映射表扩展阅读:
虚拟内存的关键问题:
(1)调度问题:决定哪些程序和数据应被调入主存。
(2)地址映射问题:在访问主存时把虚地址变为主存物理地址(这一过程称为内地址变换);在访问辅存时把虚地址变成辅存的物理地址(这一过程称为外地址变换),以便换页。此外还要解决主存分配、存储保护与程序再定位等问题。
(3)替换问题:决定哪些程序和数据应被调出主存。
(4)更新问题:确保主存与辅存的一致性。
在操作系统的控制下,硬件和系统软件为用户解决了上述问题,从而使应用程序的编程大大简化。
❾ 虚拟内存的地址映射
映射虚拟地址的形式可以分成静态虚拟地址映射和动态虚拟地址映射.所谓静态,就是在OEMAddressTable中定义映射关系或者是OS启动后调用CreateStaticMapping和NKCreateStaticMapping来实现从虚拟地址到物理地址的映射;动态则是通过VirtualAlloc和VirtualCopy(或者调用MmmapIoSpace函数).这两种映射虚拟地址的形式区别在于静态虚拟地址只能由内核使用,用于ISR访问外设存储.而动态虚拟地址可以在应用程序里访问物理地址(比如在驱动中操作寄存器).
在X86和ARM体系的CPU里,有一个数据结构对于地址映射技术尤其重要:OEMAddressTable.这个数组定义了外设从4G的虚拟地址到512M物理地址的映射关系.它位于public\common\oak\csp\x86\oal目录下的oeminit.asm中,格式为Virtual Address, Physical Address, Size
在X86下大小必须是4M的倍数,ARM下为1M的倍数.内核建立了两个范围的虚拟地址:从0x80000000到0x9FFFFFFF是带缓存的物理地址映射,而0xA0000000 到 0xBFFFFFFF 是不带缓存的物理地址映射.驱动访问外设时,应该用不带缓存段的虚拟地址. 要注意的一点是,如果改动了OEMAddressTable,相应要改动config.bib.
1.如果是在bootloader中访问设备寄存器,可以直接操作物理地址。
2.wince启动后,硬件上ARM和X86体系的处理器启动了MMU,操作系统只能访问到虚拟地址,不能直接操作物理内存了。但是如果是X86的CPU,由于它的外设I/O端口和存储器空间分开编址,可以直接嵌入汇编或者使用宏read_port_xxx,write_port_xxx来读写设备寄存器的物理地址。
3.wince软件结构里对应MMU的是一个名为OEMAddressTable的数据结构(源文件oeminit.asm中),其中建立了物理地址和虚拟地址的静态映射关系,也可以在其中改动系统所能识别物理内存的大小,以支持大内存。
4.我们也可以在wince启动后调用CreateStaticMapping和NKCreateStaticMapping来实现OEMAddressTable中的这种物理地址和虚拟地址的静态映射关系。
5.建立了静态映射关系的虚拟地址只能由内核模式下的程序来操作,例如 ISR。除非你在定制系统时,选择了full kernal mode,使所有程序都运行在完全内核模式下,这将导致系统不稳定。
6.如果要在驱动程序中访问设备寄存器,必须建立动态虚拟地址映射,可以调用MmmapIoSpace函数来实现,或者通过VirtualAlloc和VirtualCopy函数来实现。其实MmmapIoSpace内部就调用了后者。
7.在驱动中访问虚拟地址时,必须是非缓存段(位于0xA0000000 到 0xBFFFFFFF )。
8.使用VirtualCopy函数映射物理地址时,其lpvSrc参数必须右移8位,且相应的fdwProtect参数必须带page_physical。
9.如果是ARM体系的处理器,访问挂在系统总线上的设备寄存器前,必须先把总线地址转化成CPU的地址,通过HalTranslateBusAddress实现两种物理地址的变换,然后再调用MmmapIoSpace函数作虚实地址的转换。
也可以使用 TransBusAddrToVirtual ()直接把总线上的地址转化成系统的虚拟地址。 在一般的应用程序中访问 I/O 是访问它的缓存段虚拟地址,而驱动中必须访问无缓存段虚拟地址。简单来说无缓存段虚拟地址 = 缓存段虚拟地址 +0x20000000 。
全是供参考。不知道合不合你用呢!!!
❿ 虚拟内存向物理内存映射是根据什么机理
从操作系统的角度讲,虚拟内存是属于虚拟存储器的范畴。有的作业很大,无法全部被装入内存,或者有大量的作业要求运行,但内存不足以容纳,所以只能将少量作业装入内存,将其他作业留在外存上等待。
基于局部性原理,应用程序在运行之前,仅需要把把当前运行部分页面或段装如内存,其余留在盘上。程序在运行的时候,如果它所要访问的页已经调入,便可继续执行下去;但是如果程序所要访问的页没有调入内存,此时程序利用OS提供的请求调页功能,将他们调入。如果此时内存已经满了,则还需要利用页的置换功能,将内存中暂时不用的页调到盘上,腾出足够内存空间。如此这样,便可以使一个大的用户程序能在较小的内存空间上运行,也可以在内存中同时装入更多的进程使它们并发运行。对用户而言,大的内存容量只是一中感觉,故称为虚拟存储器。