win10 4g内存最佳虚拟内存 怎样设置虚拟内存

如何设置虚拟内存(win10 4g内存是最好的虚拟内存)
传统存储管理中的问题为什么会出现虚拟内存?他出现的背景是什么?
在内存管理三部曲的物理内存管理中提到,随着用户程序功能的增加,进程空所需的内存越来越大,进程空很容易突破物理内存的实际大小,导致进程无法运行 。
因此,为了解决内存不足的问题,缓解大程序和小内存的矛盾,扩充内存容量势在必行 。
可以从物理和逻辑两方面考虑扩充内存容量 。物理扩张没有技术含量 。我们自然需要研究的是如何在逻辑上扩大记忆容量 。
所谓逻辑扩展,就是实际上物理内存的容量并没有变化,只是可以装更多的东西,让用户看起来内存比实际内存大很多 。
内存的逻辑扩展技术主要有三种:覆盖技术、交换技术和虚拟内存,也称虚拟内存 。其实这些逻辑扩展技术的核心概念都是一样的,把哪个进程(或者进程的一部分)临时从内存移到外存(磁盘)上,为其他进程(或者进程的一部分)占用内存腾出空间空 。
早期操作系统中存在的两种逻辑扩展技术覆盖和交换现在已经成为历史 。下面简单介绍一下:
如前所述,早期的操作系统只是将内存空分为两块:系统区(用于存储与操作系统相关的数据)和用户区(用于存储与用户进程相关的数据) 。内存中只能有一个用户程序,用户程序占用整个用户区空 。很明显,经常会出现内存空中没有空间容纳一个用户程序的情况 。
【win10 4g内存最佳虚拟内存 怎样设置虚拟内存】

覆盖技术的基本思想是,当一个程序运行时,并不总是需要访问程序的所有部分和数据(尤其是小程序),因此可以将用户空室(内存)划分为一个固定区域和一个或多个覆盖区域 。
把程序频繁活动的部分放在固定区域,其余部分按照调用关系分段:先把要用的段放在覆盖区域,其他段放在外存(磁盘) 。在呼叫之前,用户将安排特定的系统调用,将外部存储器中的这些段转移到覆盖区域,以替换覆盖区域中的原始段 。
叠加技术的缺点是显而易见且不可接受的,即叠加技术给用户带来了解决内存空不足的问题 。操作系统只给用户提供一个系统调用,把被覆盖的段调入内存,但是用户必须解释要覆盖哪个段,调用哪个段 。
当我使用计算机的时候,我必须想出如何防止我的程序崩溃 。
好了,我们可以看到叠加技术实际上是用在同一个作业/流程的不同段之间,那么不同的作业/流程呢?
这是交换技术的适用场景 。
交换的基本思想是:空空闲的进程/作业主要存放在外存(磁盘) 。当一个进程/作业需要运行时,完全从磁盘转移到内存,让进程运行一段时间,然后再返回磁盘 。因此,当进程/作业不运行时,它们不会占用内存 。
事实上,覆盖和交换技术分别解决了传统存储管理(物理内存管理)中的某个问题:
覆盖技术打破了作业/进程必须一次加载到内存中才能开始运行(一次)的限制 。
交换技术打破了作业一旦加载到内存中,就会一直留在内存中直到作业运行结束(驻留)的限制 。
当然,反正这两种逻辑扩展技术已经成为历史,虚拟内存技术是目前的主流 。它综合了这两种古老技术的特点,自己解决了传统存储管理中的这两个问题 。
什么是虚拟内存?有了以上切换技术的铺垫,理解虚拟内存就没那么奇怪了 。
当然,在此之前,我必须强调,虚拟内存不是一个真实的东西,它是一种技术!和交换技术叠加技术一样,是逻辑扩展内存的技术空!
虚拟内存技术基于一个非常重要的原则,即局部性原则:
1)时间的局部性:如果程序中的一条指令被执行,很可能很快又被执行;如果已经访问了一些数据,很可能很快会再次被访问 。(因为程序中有很多循环)
2)空局部性:程序一旦访问一个内存位置,很有可能在不久的将来访问附近的内存位置(因为内存中连续存储了大量数据,程序的指令也是顺序存储在内存中的) 。
基于这种局部性原理,当一个程序加载到内存中时,只有这个程序中很快就会用到的部分才能加载到内存中,暂时不用的部分保留在外存(磁盘)中,程序才能正常执行 。
在程序执行过程中,当CPU所需信息不在内存中时,操作系统负责将所需信息从外存(磁盘)中转移到内存中,然后继续执行程序;
如果传输到内存时没有足够的内存空,操作系统负责将内存中暂时未使用的信息换出到外部内存 。
以上是虚拟内存技术 。

推荐阅读