虚拟内存 订阅
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。 [1] 展开全文
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。 [1]
信息
外文名
Virtual Memory
别    称
虚拟存储器
用    途
计算机系统内存管理
中文名
虚拟内存
虚拟内存简介
虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的 程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称为“分页文件”的空间中。将数据移入分页文件可释放RAM,以便完成工作。 一般而言,计算机的RAM容量越大,程序运行得越快。若计算机的速率由于RAM可用空间匮乏而减缓,则可尝试通过增加虚拟内存来进行补偿。但是,计算机从RAM读取数据的速率要比从硬盘读取数据的速率快,因而扩增RAM容量(可加内存条)是最佳选择。 [2]  虚拟内存是Windows 为作为内存使用的一部分硬盘空间。虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文件”就是从这个文件的文件名中来的。 [2]  内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,WINDOWS运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,这部分空间即称为虚拟内存,虚拟内存在硬盘上的存在形式就是 PAGEFILE.SYS这个页面文件。 [2] 
收起全文
精华内容
下载资源
问答
  • 易语言源码易语言虚拟内存申请源码.rar 易语言源码易语言虚拟内存申请源码.rar 易语言源码易语言虚拟内存申请源码.rar 易语言源码易语言虚拟内存申请源码.rar 易语言源码易语言虚拟内存申请源码.rar 易语言源码...
  •  在安装系统的时候,若是C盘分区容量小了,会出现虚拟内存不够用的问题,如果虚拟内存容量过小,系统会越来越卡,对于电脑新手,使用手工移动虚拟内存并不容易,借助这个小工具,能够一键将C盘虚拟内存转移到D盘。...
  • 操作系统实验五 虚拟内存页面置换算法(内含源代码和详细实验报告),详细介绍:http://blog.csdn.net/xunciy/article/details/79239096
  • 把文件扔进该放置的位置再使用本软件 本工具仅为添加服务器虚拟内存使用(修复版) 工具分为10档,1~10分别为虚拟内存大小 > 99 删除虚拟内存,请在内存够用的情况下使用 > 1 1G虚拟内存 > 2 2G虚拟内存 &...
  • 虚拟内存

    千次阅读 2018-05-26 18:16:02
    1、什么是虚拟内存? 一个进程是和其他进程共享CPU和主存的,但是主存的空间是有限的,当同时运行多个进程时,就会使内存不够用。这个时候,我们就引入了虚拟内存的概念,它是一种对主存的抽象的计算机内存管理技术...

    1、什么是虚拟内存?

    一个进程是和其他进程共享CPU和主存的,但是主存的空间是有限的,当同时运行多个进程时,就会使内存不够用。这个时候,我们就引入了虚拟内存的概念,它是一种对主存的抽象的计算机内存管理技术。对于32位的Linux操作系统,系统为每个进程分配4G的虚拟内存。如下图所示。

     

    2、虚拟寻址

    使用虚拟寻址,CPU通过生成一个虚拟地址来访问主存,这个虚拟地址在被送到内存之前会被内存管理单元(MMU)转换成合适的物理地址,从而找到目标地址。具体过程如下图。

    3、进程中虚拟内存数据结构

    4、作为缓冲工具的虚拟内存

    概念上组织成一个由存放那个在磁盘上的N个连续的字节大小的单元组成的数组。每个字节都有唯一的虚拟地址,作为到数组的索引。虚拟内存系统通过将虚拟内存分割为虚拟页的大小固定的块来处理这个问题。对于Linux系统,这个页的大小一般为4KB。

    <1>页表

    在内存中,存放这一个叫做页表的数据结构,通过这个页表,可以将虚拟页映射到物理页。每次MMU将一个虚拟地址转换成物理地址时,都会读取页表。操作系统负责维护页表的内容,以及自爱磁盘与DRAM之间来回传送页。

    页表就是一个PTE(page table entry)的数组。虚拟地址空间中的每个页在页表中一个固定偏移量处都有一个PTE。每个PTE是有一个有效位和n个地址字段组成的。有效位表明了该虚拟页当前是否被缓存在DRAM中;地址字段表示DRAM中相应的物理页的其实地址。下图就是一个页表示例。

    <2>页命中与缺页

    当缺页发生的时候,内核就会从磁盘拷贝VP3到物理内存,但是现在的物理内存是满的,这个时候就要选择一页写回磁盘(如果该页为被修改,就会直接丢弃;若发生修改,我们称之为脏页,就会写回到磁盘),这个页我们叫做牺牲页,然后我们会将VP3更新到PP3。随后系统会重启缺页的指令,该指令会将导致缺页的虚拟地址重新发送到MMU,现在就可以得到正常处理了。处理过程如下。

    5、页表是如何被翻译的?

    下图展示了MMU如何利用页表来实现虚拟地址到物理地址的映射。

    6、内存映射

    Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容,这个过程称为内存映射。一旦一个虚拟页面被初始化了,它就在一个由内核维护的专门的交换空间之间交换。在任何时候,交换空间都限制着当前运行着的进程能够分配的虚拟页面的总数。

    <1>共享对象

    每个进程都有自己私有的虚拟地址空间,可以避免其他进程的错误读写。不过,许多进程有相同的制度代码区域。这样如果每个进程都复制一份到物理内存,会造成空间的浪费。所以不同的进程有共享对象存在,如果一个进程将一个共享对象映射到它的虚拟地址空间的一个区域内,那么这个进程对这个区域的任何写操作,对于那些也把这个共享对象映射到它们虚拟内存的其他进程而言,也是可见的。而且,这个变化会反映在磁盘的原始对象中。

    两个进程也可能共享一份私有对象,但是在其中一个进程改变它的这份私有对象时,就会利用写时复制技术,将改变的那部分重新在物理内存中复制一份,并作出更改。具体实现过程如下图。

    <2>fork函数

    <3>execve函数

    execve的调用如下:

                                                                         execve(“a.out”,NULL,NULL);

    Execve函数在当前进程中加载并运行包含在可执行目标文件a.out中的程序,用a.out程序有效的替代了当前程序。分为以下步骤:

    <4>mmap的用户级内存映射

    Linux进程科技使用mmap函数来创建新的虚拟内存区域,并将对映射到这些区域中。函数原型如下:

                                           void *mmap(void *start,size_t length,int port,int flags,int fd,off_toffset);

    Mmap函数要求内核创建一个新的虚拟内存区域,最好是从地址start开始的一个区域,并将文件描述符fd指定的对象的一个连续的片映射代这个新的区域。

     

     

    6、动态内存分配

    动态内存分配维护着一个进程的虚拟内存区域,称为堆。对于每个进程,内核维护着一个变量brk,它指向堆的顶部。分配器将堆视为一组不同大小的块的集合来维护。每个块就是一个连续的虚拟内存片,要么是已分配的,要么是空闲的。分配器分为以下两种风格:

     

     

     

    展开全文
  • 虚拟内存不足方案

    2018-08-01 18:38:42
    虚拟内存不足方案虚拟内存不足方案虚拟内存不足方案虚拟内存不足方案虚拟内存不足方案虚拟内存不足方案虚拟内存不足方案
  • 虚拟内存原理

    千次阅读 2019-10-05 10:36:58
    虚拟内存:为了更加高效并且少出错,现代操作系统提供了一种对主存的抽象概念,叫做虚拟内存虚拟内存是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互,他为每个进程提供了一个大的,一致和私有的...

    虚拟内存:为了更加高效并且少出错,现代操作系统提供了一种对主存的抽象概念,叫做虚拟内存。虚拟内存是硬件异常,硬件地址翻译,主存,磁盘文件和内核软件的完美交互,他为每个进程提供了一个大的,一致和私有的地址空间,虚拟内存提供三个能力:
    他将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在主存和磁盘之间来回传送数据,通过这种方式高效使用了主存
    他为每个进程提供了一致的地址空间,从而简化了内存管理
    他保护了每个进程的地址空间不被其他进程破坏

    物理和虚拟寻址
    计算机主存被组织成一个由M个连续的字节大小的单元组成的数组。每字节都有一个唯一的物理地址,每一个字节的地址为0,接下来的字节地址为1,在下一个为2,以此类推,给定这种简单的结构,CPU访问内存的最自然的方式就是使用物理地址,我们把这种方式称为物理寻址。
    现在操作系统都是用虚拟寻址的寻址形式。CPU通过生成一个虚拟地址来访问内存,这个虚拟地址在送到内存之前会被转换成适当的物理地址,将虚拟地址转换成物理地址这一过程成为地址翻译。需要硬件系统个操作系统之间的紧密配合,CPU芯片上的叫做内存管理单元的专用硬件,利用存放在主存中的查询表来动态翻译虚拟地址,该表的内容由操作系统管理。
    地址空间:地址空间是一个由非负整数组成的有序集合。一个地址空间大小是由表示最大地址所需要的位数描述的,例如一个包含N=2^n个地址的虚拟地址空间就叫做一个n位地址空间。现在操作系统通常支持32位或者64位寻地址空间。

    地址空间区分了数据对象和他们的属性,一旦认识到这种区别,我们就可以将其推广,允许每个数据对象有多个独立的地址空间,其中每个地址都选自不同的地址空间,这是虚拟内存的基本思想。主存中的每个字节都以一个选自虚拟地址空间和一个选自物理地址空间的物理地址。

    虚拟内存作为缓存的工具:
    虚拟内存被组织成一个有存放在磁盘上的N个连续的字节大小的单元组成的数组,每字节都有唯一的虚拟地址,作为数组的索引,磁盘上的内容被缓存在主存中,和存储器层次结构中的其他缓存一样,磁盘上的数据被分割成块,这些快被分割成磁盘和主存之间的传输单元,VM系统通过将虚拟内存分割成称为虚拟页的大小固定的块来处理这个问题,每个虚拟页的大小为P=2^p字节,类似的,物理内存被分割成物理页,大小为p字节。被称为页帧。

    在任意时刻,虚拟页面都分为三个不相交的子集:
    未分配的:VM系统还未分配的页,未分配的块没有任何数据和他们相关联,因此,也就不占用任何磁盘空间。
    缓存的:当前已经缓存在物理内存中的已经分配的页
    为缓存的:未缓存到物理内存中已分配的页

    DRAM缓存的组织结构:
    SRAM为CPU和主存之间的L1,L2,L3高速缓存
    DRAM表示虚拟内存系统的缓存,他在主存中缓存虚拟页
    DRAM要比SRAM慢10倍,而磁盘要比DRAM慢大约100000倍,因此DRAM不命中比起SRAM不命中要昂贵的多。因为DRAM缓存不命中是由磁盘来服务的。

    在习惯说法中,DRAM缓存不命中,我们称为缺页。

    一次缺页的处理过程:
    在这里插入图片描述
    如上图所示:CPU引用了vp3一个字,vp3并未缓存在内存中(DRAM)中,地址翻译硬件会从内存中读取PTE3,从有效位推断vp3未被缓存,并触发一个缺页异常,缺页异常调用内核中的缺页异常处理程序,改程序会选择一个牺牲页,在此例中就是vp4,如果vp4被修改了,那么内核就会将其复制回磁盘,无论哪种情况,内核都会修改vp4的页表条目PTE4,反应vp4不再缓存在主存中这一事实。
    接下来,内核从磁盘复制vp3到内存中的原来vp4的位置,更新PTE3,随后返回,当异常处理程序返回时,他会重新启动导致缺页的指令,该指令会将导致缺页的虚拟地址发送给地址翻译硬件,现在vp3已经被缓存到主存中了,那么页命中也能由地址翻译硬件处理了。
    下面是完成却也异常处理的示意图:

    在这里插入图片描述
    在虚拟内存的说法中,块被称为页,在磁盘和内存之间传送页的活动叫做页面调度。页从磁盘换入DRAM和从DRAM换出磁盘,一直到最后时刻,也就是当不命中发生时,才换入页面的这种策略,称为按需页面调度。
    调用malloc会使磁盘新的页面在磁盘上产生。
    局部性
    尽管在整个运行期间程序引用的不同页面的总数可能超出物理内存总大小,但是局部性原则保证了在任意时刻,程序趋向在一个较小活动页面上工作,这个集合叫做工作集,或者常驻集合,在初始开销,将工作集页面调度到主存之后,接下来对这个工作集的引用将导致命中,而不会产生额外开销。只要程序有好的时间局部性,虚拟内存系统就能工作相当好,如果工作集的大小超出了物理内存的大小,程序将产生一种不幸的状态,叫做抖动,这个时候页面会被不停的换进与换出。使得程序性能下降。

    按需页面调度和独立的虚拟地址空间的结合,对系统中内存的使用和管理造成了深远的影响,VM简化了连接与加载,代码和数据共享,以及应用程序的内存分配。

    简化链接:独立的地址空间允许每个进程的内存映像使用相同的基本格式,而不管代码和数据实际存放在物理内存何处。
    简化加载:虚拟内存还使得容易想内存中加载可执行文件和共享对象文件。
    将一组连续的虚拟页映射到任意一个文件中的任意位置表示法称为内存映射。
    简化共享:独立的地址空间为操作系统提供了一个管理用户进程和操作系统的自身之间共享的一致机制。一般而言,每个进程都有自己私有的代码、数据、堆以及栈区,是不和其他进程共享的,在这种情况下,操作系统创建页表,将相应的虚拟页映射到不连续的物理页面。
    在一些情况下,还是需要进程来共享数据和代码,比如每个进程必须调用相同的操作系统内核代码,而每个C程序都会调用C标准库中的程序,操作系统通过将不同进程中适当的页面映射到相同的物理页面,从而安排多个进程共享这部分代码的副本,而不是每个进程单独拥有内核或者C标准库。
    简化内存分配:虚拟内存为用户提供了简化内存分配的机制,当一个运行在用户进程中的程序要求分配额外的堆空间的话,操作系统分配相应适当的数字个连续个虚拟内存页面,并且将它们映射到物理内存中任意位置的k个任意的物理页面,由于页表的工作方式,没必要分配连续的物理页面,而是随机分散在物理内存中。

    虚拟内存作为内存保护的工具:
    现代计算机系统必须为操作系统提供手段来控制对内存系统的访问,不应该允许一个进程修改他的只读代码段,而且也不用改允许他读或者修改任何内核中的代码或者数据结构。不应该允许他度或者写其他进程的私有内存,并且不允许他修改与其他进程共享的虚拟页面,除非共享者都显式的允许他这么做。
    每次CPU生成一个地址时,地址翻译硬件都会读一个PTE,所以通过在PTE上添加一些额外的许可位来控制对一个虚拟页面的访问十分简单。

    在这里插入图片描述

    用虚拟内存提供页面级的内存保护

    当用户进程访问一些页面越过权限时,就会触发内核异常处理程序,报告段错误,并强制退出程序。

    展开全文
  • mac关闭虚拟内存Your Mac comes with a set amount of physical memory applications can use. Your running programs, open files, and other data your Mac is actively working with are stored in this physical...
    mac关闭虚拟内存

    mac关闭虚拟内存

    Your Mac comes with a set amount of physical memory applications can use. Your running programs, open files, and other data your Mac is actively working with are stored in this physical memory. But that’s a simplification—applications can also use “virtual memory”, which your Mac can compress and temporarily store on disk.

    您的Mac随附了可以使用的一定数量的物理内存。 Mac正在使用的正在运行的程序,打开的文件以及其他数据都存储在此物理内存中。 但这只是一种简化-应用程序还可以使用“虚拟内存”,Mac可以将其压缩并临时存储在磁盘上。

    There’s no official way to disable virtual memory on a modern Mac, although this was possible in the days before Mac OS X—now named macOS—was released. While it may be possible to hack your system to prevent your Mac from storing virtual memory on disk, you shouldn’t do this.

    尽管在Mac OS X(现在称为macOS)发布之前的几天里,可以在现代Mac上禁用虚拟内存,但是没有官方的方法。 虽然可能会入侵您的系统以阻止Mac将虚拟内存存储在磁盘上,但您不应该这样做。

    什么是虚拟内存? (What Is Virtual Memory?)

    While your Mac only has a limited amount of physical memory, it exposes a larger area of available virtual memory to running programs. For example, even if you have a Mac with 8 GB of RAM, every 32-bit process on your Mac is given 4 GB of available address space it can use. Every 64-bit process is given about 18 exabytes—that’s 18 billion gigabytes—of space it can work with.

    尽管Mac的物理内存量有限,但它会将较大的可用虚拟内存区域暴露给正在运行的程序。 例如,即使您的Mac具有8 GB的RAM,Mac上的每个32位进程也会获得4 GB的可用地址空间。 每个64位进程都可以使用大约18艾字节(即180亿千兆字节)的空间。

    Applications are free to use as much memory as they want within these limitations. When your physical memory fills up, macOS automatically “pages out” data that isn’t actively being used, storing it on your Mac’s internal drive. When the data is needed again, it’s transferred back to RAM. This is slower than simply keeping the data in RAM all the time, but it allows for the system to transparently just “keep working”. If Macs couldn’t store virtual memory data on disk, you’d see messages asking you to close a program to continue.

    在这些限制内,应用程序可以自由使用所需的内存。 当您的物理内存已满时,macOS会自动“调出”未被积极使用的数据,并将其存储在Mac的内部驱动器中。 当再次需要数据时,会将其传输回RAM。 这比始终将数据始终保持在RAM中要慢,但是它允许系统透明地只是“保持工作”。 如果Mac无法在磁盘上存储虚拟内存数据,则会看到消息,要求您关闭程序以继续。

    This is basically the same thing as the page file on Windows, and the swap space on Linux and other UNIX-like operating systems. In fact, macOS is a UNIX-like operating system itself.

    这基本上与Windows上的页面文件Linux和其他类似UNIX的操作系统交换空间相同 。 实际上,macOS本身就是类UNIX的操作系统。

    Modern versions of macOS actually go through even more trouble to avoid paging out data to the disk, compressing data stored in memory as much as possible before paging it out.

    实际上,现代版本的macOS会遇到更多麻烦,以避免将数据分页到磁盘,在分页之前尽可能多地压缩存储在内存中的数据

    它存储在哪里? (Where Is It Stored?)

    Virtual memory data is stored in the /private/var/vm directory on your Mac’s internal storage if it has been paged to disk. The data is stored in one or more files named “swapfile” and ending with a number.

    如果虚拟内存数据已分页到磁盘,则存储在Mac内部存储器的/private/var/vm目录中。 数据存储在一个或多个名为“ swapfile”的文件中,并以数字结尾。

    Most UNIX-like operating systems use a separate partition for the swap file, permanently allocating part of your storage to swap space. Apple’s macOS does not do this. Instead, it stores the swapfile files on your system storage drive. If applications don’t need additional virtual memory, these files won’t use much space. If applications need more virtual memory, these files will grow in size as needed—and then shrink back down when they don’t need be large anymore.

    大多数类似UNIX的操作系统都为交换文件使用单独的分区,从而将部分存储永久分配给交换空间。 苹果的macOS不会这样做。 而是将交换文件文件存储在系统存储驱动器上。 如果应用程序不需要额外的虚拟内存,则这些文件不会占用太多空间。 如果应用程序需要更多的虚拟内存,这些文件将根据需要增大大小,然后在不再需要大文件时缩小它们。

    This directory also contains the “sleepimage” file, which stores the contents of your Mac’s RAM on disk when it hibernates. This allows the Mac to save its state—including all your open applications and files—while shutting down and not using any power.

    该目录还包含“ sleepimage”文件,该文件在Hibernate时将Mac RAM的内容存储在磁盘上。 这样,Mac可以在关闭且不使用任何电源的情况下保存其状态(包括所有打开的应用程序和文件)。

    To view the contents of this directory and see how much space these files are currently using on disk, you can open a Terminal window and run the following command. (To open a Terminal window, press Command+Space to open Spotlight search, type “Terminal”, and press Enter.)

    要查看此目录的内容并查看这些文件当前在磁盘上使用了多少空间,可以打开“终端”窗口并运行以下命令。 (要打开终端窗口,请按Command + Space打开Spotlight搜索,键入“ Terminal”,然后按Enter。)

    ls -lh /private/var/vm
    

    In the screenshot below, we can see that each of these files is 1 GB in size on my Mac.

    在下面的屏幕截图中,我们可以看到Mac上每个文件的大小均为1 GB。

    为什么不应该禁用虚拟内存 (Why You Shouldn’t Disable Virtual Memory)

    You really shouldn’t try to disable this feature. The macOS operating system and running applications expect it to be enabled. In fact, Apple’s official documentation says “Both OS X and iOS include a fully-integrated virtual memory system that you cannot turn off; it is always on.”

    您确实不应该尝试禁用此功能。 macOS操作系统和正在运行的应用程序希望将其启用。 实际上,苹果公司的官方文档说: “ OS X和iOS都包含一个完全集成的虚拟内存系统,您无法关闭它; 它总是打开。”

    However, it is technically possible to disable the backing store—that is, those swapfiles on disk—on macOS. This involves disabling System Integrity Protection before telling your Mac not to run the dynamic_pager system daemon and then deleting the swapfiles. We won’t provide the relevant commands for doing this here, as we don’t recommend anyone do this.

    但是,从技术上讲,可以在macOS上禁用后备存储(即磁盘上的那些交换文件)。 这涉及在告诉Mac不要运行dynamic_pager系统守护程序之前,先禁用系统完整性保护 ,然后删除交换文件。 我们不会在此处提供执行此操作的相关命令,因为我们不建议任何人这样做。

    The macOS operating system and the applications running on it expect the virtual memory system to work properly. If your physical memory fills up and the Mac operating system can’t page data out to disk, one of two bad things will happen: Either you’ll see a prompt telling you to quit one or more applications to continue, or applications will crash and you may experience general system instability.

    macOS操作系统及其上运行的应用程序期望虚拟内存系统正常运行。 如果您的物理内存已满,并且Mac操作系统无法将数据分页到磁盘,则会发生以下两种不良情况之一:要么看到提示您退出一个或多个应用程序以继续运行的提示,否则应用程序将崩溃并且您可能会遇到一般系统不稳定的情况。

    Yes, even if you have 16 GB or more of RAM, it may sometimes fill up—especially if you run demanding professional applications like video, audio, or image editors that need to store a lot of data in memory. Leave it alone.

    是的,即使您有16 GB或更多的RAM,有时它也可能会填满-特别是如果您运行要求严格的专业应用程序,例如视频,音频或图像编辑器,需要在内存中存储大量数据。 不要管它。

    不用担心磁盘空间或SSD (Don’t Worry About Disk Space, or Your SSD)

    There are two reasons why people might want to disable the virtual memory feature and remove the swapfile files from disk.

    人们可能要禁用虚拟内存功能并从磁盘中删除交换文件文件有两个原因。

    First, you may be concerned about disk space usage. You may want to get rid of these files to free up some space. Well, we wouldn’t worry about it. These files don’t waste a large amount of space on disk. If your Mac doesn’t need much virtual memory, they’ll be tiny. On our MacBook Air with only 4 GB of RAM, we noticed a swapfile file using about 1 GB of space—that’s it.

    首先,您可能会担心磁盘空间的使用。 您可能希望摆脱这些文件以释放一些空间。 好吧,我们不用担心。 这些文件不会在磁盘上浪费大量空间。 如果您的Mac不需要太多虚拟内存,它们将很小。 在只有4 GB RAM的MacBook Air上,我们注意到一个交换文件文件使用了大约1 GB的空间。

    If they are using a lot of space, that’s because the programs you have open need it. Try closing demanding programs—or even rebooting—and the swapfile files should shrink and stop using space. Your Mac only uses disk space when necessary, so you aren’t losing anything.

    如果他们使用大量空间,那是因为您打开的程序需要它。 尝试关闭要求苛刻的程序(甚至重新启动),交换文件文件应缩小并停止使用空间。 Mac仅在必要时使用磁盘空间,因此您不会丢失任何东西。

    If the virtual memory files are always very large, that’s a sign you need more RAM in your Mac, not that you need to disable the virtual memory feature. (You can see how much physical memory your Mac has by clicking Apple menu > About This Mac and reading what it says next to “Memory”.)

    如果虚拟内存文件始终很大,则表明您的Mac需要更多RAM,而不是需要禁用虚拟内存功能。 (您可以通过单击Apple菜单>关于本Mac,然后阅读“内存”旁边的内容来查看Mac的物理内存量。)

    The other concern is wear of your Mac’s internal solid-state drive. Many people are worried that excess writes to a solid-state drive could reduce its lifespan and cause problems. This is true in theory, but in practice, this concern is generally overblown, and left over from the days when SSDs had far less longevity. Modern SSDs should last a good long time, even with features like this enabled. macOS won’t quickly wear down your SSD just because you leave a default system feature enabled—in fact, something else in your Mac will probably die before your SSD.

    另一个问题是Mac内部固态驱动器的磨损。 许多人担心过多写入固态驱动器会缩短其使用寿命并引起问题。 从理论上讲这是正确的,但实际上,这种担忧通常被夸大了,并且从SSD使用寿命长得多的时代就遗忘了。 即使启用了此类功能,现代SSD也应持续很长时间。 macOS不会仅仅因为您启用了默认系统功能而立即耗尽SSD —实际上,Mac中的其他内容可能会在SSD之前消失。

    In other words, don’t worry about it. Leave virtual memory be and allow your Mac to work as it was designed to.

    换句话说,不用担心。 保留虚拟内存不变,并允许Mac按其设计的方式工作。

    翻译自: https://www.howtogeek.com/319151/why-you-shouldnt-turn-off-virtual-memory-on-your-mac/

    mac关闭虚拟内存

    展开全文
  • 首先我们需要先了解什么是虚拟内存。我们知道电脑的硬件中有内存条(物理内存)、硬盘,当内存条中的空间不足时操作系统会从硬盘中分配一部分空间当作内存来使用。因内存和硬盘读写速度差异太大,所以当启用虚拟内存...

    首先我们需要先了解什么是虚拟内存。我们知道电脑的硬件中有内存条(物理内存)、硬盘,当内存条中的空间不足时操作系统会从硬盘中分配一部分空间当作内存来使用。因内存和硬盘读写速度差异太大,所以当启用虚拟内存后会大大降低系统运行速度。所以如果内存容量足够尽量不要使用虚拟内存。

    虚拟内存设置多少合适?

    虚拟内存一般设置为物理内存的1.5倍。
    以8G内存条为例:

    系统如果是32位的,那么只支持3.2G,虚拟内存应该设置为4800;
    如果是64位的,那么支持3.2G以上的内存,虚拟内存应该设置为12000;

    怎么设置虚拟内存
    设置虚拟内存

    在windows系统中我们右键桌面上的“此电脑”,选择“属性”,打开系统信息界面,再选择左侧栏里的“高级系统设置”。
    然后点击“高级”选项卡,在性能一栏点“设置”,再选择“高级”选项卡,我们可以看到有一个“虚拟内存”的功能栏,点“更改”。
    系统默认是勾选了“自动管理所有驱动器的分页文件大小”,我们将勾选框取消。如果你的C盘空间够大,我们可以将虚拟内存设置在C盘,如果空间不足,可以调整到D盘。
    虚拟内存怎么设置最好?虚拟内存设置多少合适

    展开全文
  • 操作系统中有虚拟内存与物理内存的概念。 首先理解一下什么叫物理内存?什么叫虚拟内存? 物理内存是指由于安装内存条而获得的临时储存空间。主要作用是在计算机运行时为操作系统和各种程序提供临时储存。常见的...
  • 虚拟内存的作用

    千次阅读 2020-03-30 15:43:55
    概述 在系统中所有的进程之间是共享CPU和主存内存资源的。当进程数量变多时,所需要的内存资源就会相应的增加。可能会导致部分程序没有主存空间可用。...虚拟内存是硬件异常、硬件地址翻译、主存、磁盘文...
  • 深入理解虚拟内存机制

    万次阅读 2018-09-11 18:14:10
    现代操作系统了提供了一种对主存的抽象概念,叫做虚拟内存。它为每个进程提供了一个非常大的,一致的和私有的地址空间。虚拟内存提供了以下的三个关键能力: 它将主存看成是一个存储在磁盘空间上的地址空间的高速...
  • 虚拟内存(为什么要有虚拟内存

    千次阅读 2020-07-11 15:28:35
    操作系统有虚拟内存与物理内存的概念。在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址。程序能寻址的范围是有限的,这取决于CPU的地址线条数。比如在32位平台下,寻址的范围是2^32也就是4G。并且...
  • 什么是虚拟内存

    万次阅读 多人点赞 2019-11-09 15:33:02
    什么是虚拟内存呢?先查一下维基百科: 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时...
  • 虚拟内存以及进程的虚拟内存分布(第六章)

    千次阅读 多人点赞 2019-05-17 10:59:58
    在现代计算机操作系统中,计算机同时运行多个程序,为了提高CPU的利用率和物理内存的利用率,操作系统应用虚拟内存机制来管理内存。 本文介绍一些与虚拟内存相关的概念。 目录 1.物理内存 vs 虚拟内存 2.物理...
  • 虚拟内存与实际内存

    千次阅读 2020-02-27 15:54:38
    在Linux命令行中执行top命令,可以查询到所有进程使用的VIRT虚拟内存、RES常驻内存和共享内存SHR。 那么,什么是VIRT虚拟内存、RES常驻内存和共享内存SHR?我们编写的Linux C++程序如何影响它们呢? 查阅资料后,...
  • 物理内存与虚拟内存之间的映射

    千次阅读 2020-03-26 15:58:54
    原文链接:... 1、用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空...
  • 虚拟内存与物理内存的联系与区别

    万次阅读 多人点赞 2018-08-30 11:55:36
    操作系统有虚拟内存与物理内存的概念。在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址。程序能寻址的范围是有限的,这取决于CPU的地址线条数。比如在32位平台下,寻址的范围是2^32也就是4G。并且...
  • 虚拟内存、物理内存/RAM 干嘛的

    千次阅读 2021-07-21 10:17:57
    本文记录自己理解后的虚拟内存、物理内存的作用前言虚拟内存 前言 了解之前先了解几个概念 1>RAM 随机存储器: 也就是我们经常说的内存条:同事跟我说,他电脑内存8个G,想玩吃鸡。 我回答他:你才8个G,玩不了,...
  • 虚拟地址与虚拟内存的理解

    千次阅读 2019-04-16 10:38:00
    在最开始看书的时候,我知道程序在运行时,不是全部加入内存当中的,当然,这个现在依旧正确,在有了虚拟地址空间这个概念以后,我一直认为是在硬盘中划分出一块虚拟内存出来,然后给每个程序4G的硬盘空间,作为这个...
  • 【Linux】Linux的虚拟内存详解(MMU、页表结构)

    万次阅读 多人点赞 2018-07-16 20:16:28
    为解决这个问题,人们设计了许多的方案,其中最成功的当属虚拟内存技术。Linux作为一个以通用为目的的现代大型操作系统,当然也毫不例外的采用了优点甚多的虚拟内存技术。   虚拟内存 为了运行比实际物理内存...
  • documentlinux内存机制CPU内存虚拟内存硬盘物理内存内存和虚拟内存跟 Windows 完全不同的 Linux 内存机制Swap配置对性能的影响 linux内存机制 Linux支持虚拟内存(Virtual Mmemory),虚拟内存是指使用磁盘当作RAM的...
  • 想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES...
  • 操作系统-虚拟内存 有关操作系统的设计,都是在解决一个问题,即:如果让计算机高效安全的运行多道程序。 本文要解决哪些问题 为何虚拟地址可以起到这样的作用:512M内存的机器,可跑1G大小的游戏? 虚拟内存技术...
  • 虚拟内存机制 计算机的存储系统 为什么要有虚拟内存 在早期的计算机中,是没有虚拟内存的概念的。我们要运行一个程序,会把程序全部装入内存,然后运行。 当运行多个程序时,经常会出现一下问题: 进程地址空间不...
  • linux进程虚拟内存

    千次阅读 2018-12-06 23:30:17
    上面的内容都是假设有一张页表,将一个虚拟内存空间映射到物理内存空间,其实,操作系统为每个进程提供来单独的页表和单独的虚拟内存空间。请看下面的示意图。 进程i的VP1映射到PP2,VP2映射到PP7,进程j的VP1...
  • 虚拟内存可以让应用程序认为它拥有连续的可用的内存,缓解内存不足的压力。那么,在win10系统中如何增加虚拟内存呢?下面就让小编教大家win10系统增加虚拟内存的方法。 一、右键点击此电脑,选择“属性”。 二、...
  • 转自:https://blog.csdn.net/rebirthme/article/details/50402082想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 586,805
精华内容 234,722
关键字:

虚拟内存