虚拟存储器是什么?它的特征、功能及作用有哪些?其三种映射方式是怎样的? 虚拟存储器机制与高速缓存Cache机制很类似,高速缓存Cache是缓存了内存中的数据,虚拟存储器是在内存中缓存了磁盘的数据。如果虚拟存储器中数据不存在,那么需要从磁盘上读取数据,然后放入内存。由于磁盘的速度要比内存慢10万倍,所以除了必要的情况,应尽量少的从磁盘反复读取数据。虚拟存储器采用全相联映射方式,所以每个虚拟地址可以映射到内存的任何一个空闲位置,因此与Cache类似,虚拟存储器必须有一种方法确定每个进程虚拟地址对应内存的位置或磁盘位置,其的映射方式有3种:分页式、分段式和段页式。下文中小编详细为大家介绍虚拟存储器是什么,它的特征、功能、作用有哪些,大小决定因素是什么,及三种映射方式详解。 虚拟存储器是什么? 虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。根据所用的存储器映像算法,虚拟存储器管理方式主要有段式、页式、和段页式三种。 虚拟存储器是如何工作的? 基于局部性原理可知,应用程序运行前仅须将那些当前要运行的少数页面或段先装入内存,其余部分暂留磁盘上。如果程序所要访问的页或段尚未调入内存,就发生缺页或缺段请求。如果此时内存已满,OS需要利用页置换功能,将内存中暂时不用的页调至磁盘上,再将需要访问的页调入内存。 虚拟存储器有哪些特征? 虚拟存储器的特征可以用16个字来概括:虚拟扩充、部分装入、离散分配、多次对换。 对于虚拟存储器这个基本概念应从以下4个方面进行理解,这些也是虚拟存储器所具有的基本特征: ①虚拟扩充 虚拟存储器不是扩大物理内存空间,而是扩充逻辑内存容量。就是说,用户编程时所用到的地址空间可以远大于实际内存的容量。例如,实际内存只有1MB,而用户程序和数据所用的空间却可以达到10MB或者更多。所以,用户“感觉”内存扩大了。 ②部分装入 每个进程不是全部一次性地装入内存,而是分成若干部分。当进程要执行时,只需将当前运行需要用到的那部分程序和数据装入内存。以后在运行过程中用到其他部分时,再分别把那些部分从外存调入内存。 ③离散分配 一个进程分成多个部分,它们没有被全部装入内存。即使装入内存的那部分也不必占用连续的内存空间。这样,一个进程在内存的部分可能散布在内存的不同地方,彼此并不连续。这样做,不仅可避免内存空间的浪费,而且为进程动态调入内存提供方便。 ④多次对换 在一个进程运行期间,它所需的全部程序和数据分成多次调入内存。每次调入一部分,只解决当前需要,而在内存的那些暂时不被使用的程序和数据,可换出到外存的对换区;甚至把暂时不能运行的进程在内存的全部映像都换出到对换区,以腾出尽量多的内存空间供可运行的进程使用。被调出的程序和数据在需要时可以重新调入内存中。 虚拟存储器的功能是怎样的? (1)它将主存看成一个存储在磁盘上的地址空间的高速缓存,在主存中只保留活动区域,并根据需要在磁盘和主存之间来回传送数据; (2)他为每个进程提供了一致的地址空间,从而简化了存储器管理; (3)它保护了每个进程的地址空间不被其它进程破坏; 虚拟存储器有什么作用? 虚拟内存的作用 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。举一个例子来说,如果电脑只有128MB物理内存的话,当读取一个容量为200MB的文件时,就必须要用到比较大的虚拟内存,文件被内存读取之后就会先储存到虚拟内存,等待内存把文件全部储存到虚拟内存之后,跟着就会把虚拟内存里储存的文件释放到原来的安装目录里了。 虚拟存储器的大小是由哪些因素决定的? 例如,32位地址总线的计算机,虚拟存储器的大小为4GB,但实存未必有这么大,实存由计算机的内存条大小决定,如插1G的内存条,内存就是1GB。如果我要编制一个程序,空间大小为4GB,那剩下的3GB从何而来?虚拟存储器的大小虽说可以随意调节(最大可以调节主存+磁盘总容量),不由地址线决定。但那么大的虚拟存储器没有意义,例如地址线32根,最多只能找到4GB个存储单大小的空间,那设置成100G的虚拟存储空间毫无意义,因为根本找不到那部分的地址单。因此统一化虚拟存储器的容量由计算机地址总线数量决定。 虚拟存储器的三种映射方式详解 分页式虚拟存储器 分页式存储器把内存和虚拟地址空间都划分成大小相等的页面,磁盘和内存按页面为单位交换信息。通常把虚拟地址空间的页面成为虚拟页/逻辑页(VP),内存中的页面成为页框/物理页(PP)。 1.页表 操作系统在内存中给每个进程生成一个页表,页表中对应每个虚拟页都有一个表项,表项内容包括存放位置字段、装入位、修改位、替换控制位、存取权限位、禁止缓存位。它们的作用分别如下: ①存放位置字段:用来建立虚拟页和物理页之间的映射,用于虚拟地址到物理地址的转换 ②装入位:也称有效位或存在位,为1表示磁盘数据已调入内存,位置字段指向物理页号。为0表示磁盘数据没有被调入内存,若位置字段为null则说明此位置空闲,若不为null则说明等待磁盘数据调入内存 ③修改位:标识页面是否被修改过,在执行回写策略时根据此字段判断是否需要把数据写回磁盘 ④替换控制位:标识页面使用情况,配合替换策略设置 ⑤访问权限位:标识页面是可读可写、只读、只可执行,用于存储保护 ⑥禁止缓存位:标识页面是否可以装入Cache,保证磁盘、内存、Cache数据一致性 页表、内存、磁盘的映射示意图如图所示: 



用户进程格式 逻辑地址到物理地址的转换过程如图所示:

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/89331.html