为您找到与2g物理内存虚拟内存相关的共200个结果:
电脑在运行时,偶尔会出现提示“虚拟内存不足,请增加你的虚拟内存”信息,虚拟内存是什么?怎样增大虚拟内存?但是又有网友这么跟读文网小编说1g物理内存开多少虚拟内存比较合适?其实虚拟内存一般开到1.5倍就比较合适的了!比如你1G内存 那么就1.5G虚拟内存就比较合适。下面就由读文网小编来说说如何怎么设置虚拟内存吧。
虚拟内存:虚拟内存是在磁盘上划出一块区域,用来当作内存来使用,弥补内存条不足的一种方法。
怎样增加虚拟内存:电脑系统有虚拟内存设置功能,可以自定义设置虚拟内存的大小。具体如何设置虚拟内存,设置多大最为合适,请看以下教程。
1,在桌面点击“开始”,然后打开“控制面板”。
2,在控制面板内,打开“系统”快捷图标。
3,在系统属性窗口,选择“高级”->“性能”下的“设置”按钮。
4,在性能选项窗口中,选择“高级”->“虚拟内存”下的“更改”按钮。
5,在这里,显示的是我原来的虚拟内存设置,我的物理内存为1G,虚拟内存设置在C盘,它推荐我设置虚拟内存设为1536MB=1.5G,但我没有按它的要求设置,我只设置了1024MB=1G。
虚拟内存设置大小一般应该为物理内存的1.5倍为好,
如果物理内存为2G,虚拟内存应该设置为3G=3072MB,
如果物理内存为4G,那虚拟内存应该设置为6G=6144MB,
我的物理内存为1G,那虚拟内存应该设置为1.5G=1536MB,
注:1G=1024MB
6,开始修改我的虚拟内存:
一,仍然设置在C盘。
二,选择“自定义大小”,
三,把初始值与最大值都设置为1536MB=1.5G,(提示:最小值与最大值最好设置为相同,这样更利于电脑的性能稳定)
四,设置好后按“设置”按钮,这样才能生效。
五,最后按“确定”。
7,当按了“确定”后,会弹出提示框“要使改动生效,必须重新启动计算机”,虚拟内存设置完成。
注意事项
如果物理内存偏小,可以把虚拟内存设置得大一点,可以为物理内存的2倍或3倍。
如果物理内存已经很大,比如有4G或者8G,那就只要设置为1.5倍即可,太大了,反而浪费
浏览量:2
下载量:0
时间:
今天有网友跟读文网小编说,我自己家的内存显示是2G,那到底2G物理内存是什么意思呢?读文网小编就整合了相关资料然后为你解答!以下就是读文网小编的回答。
物理内存,CPU的地址线可以直接进行寻址的内存空间大小。比如8086只有20根地址线,那它的寻址空间就是1MB。我们就说8086能支持1MB的物理内存。即使我们安装了128M的内存条在板子上,我们也只能说8086拥有1MB的物理内存空间。同理32位的386以上CPU,就可以支持最大4GB的物理内存空间了。
虚拟内存与物理内存的区别:虚拟内存就与物理内存相反,是指根据系统需要从硬盘虚拟地匀出来的内存空间,是一种计算机系统内存管理技术,属于计算机程序,而物理内存为硬件。因为有时候当你处理大的程序时候系统内存不够用,此时就会把硬盘当内存来使用,来交换数据做缓存区,不过物理内存的处理速度是虚拟内存的30倍以上。
浏览量:2
下载量:0
时间:
2g虚拟内存设置多少?你知道这个知识点吗?现在就由小编来告诉你吧!
2g虚拟内存设置多少
一,如何合理设置虚拟内存
虚拟内存啲设置主要根据你啲实际内存大小和你电脑啲用途来设定,在桌面上用鼠标右击“本人啲计算机”,选择“属性”,就可以看到内存了。根据微软啲建议,虚拟内存设为物理内存容量啲1.5--3倍,例如512MB啲内存,虚拟内存设定为768--1536MB;1G啲内存,虚拟内存设定为 1536--3072MB。也可让Windows来主动分配管理虚拟内存,它可以根据实际内存啲应用情况,动态调整虚拟内存啲大小。在虚拟内存设置页面下方有一个推荐数值,假如确实不晓得设置几为最佳,建议虚拟内存就设为推荐啲数值。虚拟内存有初始大小与最大值两个数值,最佳把初始大小和最大值设为相同,以避免系统频繁改变页面文件啲大小,影响计算机运行。内存容量2GB或以上啲,要是不运行大型文件或游戏,也可以关闭虚拟内存。
虚拟内存啲使用原理就是在你啲物理内存不够用时把一部分硬盘空间作为内存来应用,不过由于硬盘传输啲速度要比内存传输速度慢啲多,所以应用虚拟内存比物理内存效率要慢。个人实际需要啲值应该本人多次调整为好。设啲太大会产生大量啲碎片,严重影响系统速度,设啲太小就不够用,于是系统就会提示你虚拟内存太小。
二,虚拟内存的设置方法
右建点击击“本人啲计算机”选择“属性--高级--性可以--设置--高级--虚拟内存--更加改”,选择虚拟内存所在啲磁盘,然后在下边单击“自定义大小” 并写入“初始大小”和“最大值”,最后按“设置”按钮,再确定即可。虚拟内存从C盘设置到其它磁盘啲办法:右击本人啲计算机--属性--高级--性可以设置--高级--虚拟内存更加改--点选C盘--单选“无分页文件”--“设置”,此时C盘旁啲虚拟内存就消失了;然后选中D或F盘,单选“自定义大小”--在下面啲“初始大小”和“最大值”两个文本框中写入数值--“设置”—确定--重启计算机,便完成了设置。
虚拟内存最好不要和系统设在同一个磁盘内,内存是随着应用而动态地变化,设在C盘就容易产生磁盘碎片,影响系统运行速度。所以,最佳将虚拟内存设置在磁盘剩余空间较大而又不常用啲磁盘,如D、F,这样可以避免系统在C盘进行频繁啲读写操作而影响系统速度。虚拟内存在一台计算机,只用设置一次,可设置在任何一个磁盘。
浏览量:3
下载量:0
时间:
2g内存虚拟内存设置多少最好?你知道这个知识点吗?如果你还不太清楚,那么现在就由小编来告诉你吧!
2g内存虚拟内存设置多少最好
在这里,显示的是我原来的虚拟内存设置,我的物理内存为1G,虚拟内存设置在C盘,它推荐我设置虚拟内存设为1536MB=1.5G,但我没有按它的要求设置,我只设置了1024MB=1G。
虚拟内存设置大小一般应该为物理内存的1.5倍为好,
如果物理内存为2G,虚拟内存应该设置为3G=3072MB,
如果物理内存为4G,那虚拟内存应该设置为6G=6144MB,
我的物理内存为1G,那虚拟内存应该设置为1.5G=1536MB,
注:1G=1024MB
6,开始修改我的虚拟内存:
一,仍然设置在C盘。
二,选择“自定义大小”,
三,把初始值与最大值都设置为1536MB=1.5G,(提示:最小值与最大值最好设置为相同,这样更利于电脑的性能稳定)
四,设置好后按“设置”按钮,这样才能生效。
五,最后按“确定”。
7,当按了“确定”后,会弹出提示框“要使改动生效,必须重新启动计算机”,虚拟内存设置完成。
浏览量:5
下载量:0
时间:
2g电脑虚拟内存设置?你知道2g电脑虚拟内存设置怎么样才是最好的吗?下面就由读文网小编给你解说吧!
2g电脑虚拟内存设置
虚拟内存对于系统来说是很重要的,但是关于他得设置也是需要一些方法的,不是所有的方法都可以将虚拟内存设置好的,那么虚拟内存怎么设置最好:虚拟内存太低怎么办?虚拟内存设置就行了,不必重装系统,建议将初始大小和最大值同时设置为你物理内存的1-2倍,比如1G设置为2048MB(1G内存是2倍),2G的内存建议你虚拟内存初始大小与最大值都设置为3070MB(2G内存是1.5-2倍),设置相同数值可以避免容易产生磁片,3G设置为3072-4608MB(3G内存是1-1.5倍),4G内存先设置为4096
2g电脑虚拟内存设置:
一,如何合理设置虚拟内存
虚拟内存啲设置主要根据你啲实际内存大小和你电脑啲用途来设定,在桌面上用鼠标右击“本人啲计算机”,选择“属性”,就可以看到内存了。根据微软啲建议,虚拟内存设为物理内存容量啲1.5--3倍,例如512MB啲内存,虚拟内存设定为768--1536MB;1G啲内存,虚拟内存设定为 1536--3072MB。也可让Windows来主动分配管理虚拟内存,它可以根据实际内存啲应用情况,动态调整虚拟内存啲大小。在虚拟内存设置页面下方有一个推荐数值,假如确实不晓得设置几为最佳,建议虚拟内存就设为推荐啲数值。虚拟内存有初始大小与最大值两个数值,最佳把初始大小和最大值设为相同,以避免系统频繁改变页面文件啲大小,影响计算机运行。内存容量2GB或以上啲,要是不运行大型文件或游戏,也可以关闭虚拟内存。
虚拟内存啲使用原理就是在你啲物理内存不够用时把一部分硬盘空间作为内存来应用,不过由于硬盘传输啲速度要比内存传输速度慢啲多,所以应用虚拟内存比物理内存效率要慢。个人实际需要啲值应该本人多次调整为好。设啲太大会产生大量啲碎片,严重影响系统速度,设啲太小就不够用,于是系统就会提示你虚拟内存太小。
二,虚拟内存的设置方法
右建点击击“本人啲计算机”选择“属性--高级--性可以--设置--高级--虚拟内存--更加改”,选择虚拟内存所在啲磁盘,然后在下边单击“自定义大小” 并写入“初始大小”和“最大值”,最后按“设置”按钮,再确定即可。虚拟内存从C盘设置到其它磁盘啲办法:右击本人啲计算机--属性--高级--性可以设置--高级--虚拟内存更加改--点选C盘--单选“无分页文件”--“设置”,此时C盘旁啲虚拟内存就消失了;然后选中D或F盘,单选“自定义大小”--在下面啲“初始大小”和“最大值”两个文本框中写入数值--“设置”—确定--重启计算机,便完成了设置。
虚拟内存最好不要和系统设在同一个磁盘内,内存是随着应用而动态地变化,设在C盘就容易产生磁盘碎片,影响系统运行速度。所以,最佳将虚拟内存设置在磁盘剩余空间较大而又不常用啲磁盘,如D、F,这样可以避免系统在C盘进行频繁啲读写操作而影响系统速度。虚拟内存在一台计算机,只用设置一次,可设置在任何一个磁盘。
三,减轻内存负担
1、那些主动运行啲程序不可太多。点击“开始”--“运行”,键入“Msconfig”-“确定”,打开“系统配置实用程序”窗口,删除不想主动加载啲启动项目。
2、在电脑里打开啲程序不可太多。如果同时打开啲文档过多或者运行啲程序过多,就没有足够啲内存运行其他程序,要关闭不用啲程序和窗口。
相信这是大家都会喜欢这样的设置方法的,主要是可以实现目的,将虚拟内存更好的为系统服务,大家有需要可以好好看看,希望对大家有用。
浏览量:2
下载量:0
时间:
读文网小编今天为大家分享物理内存4g设虚拟内存的操作步骤,欢迎大家前来阅读。
1,在桌面点击“开始”,然后打开“控制面板”。
2,在控制面板内,打开“系统”快捷图标。
3,在系统属性窗口,选择“高级”->“性能”下的“设置”按钮。
4,在性能选项窗口中,选择“高级”->“虚拟内存”下的“更改”按钮。
5,在这里,显示的是我原来的虚拟内存设置,我的物理内存为1G,虚拟内存设置在C盘,它推荐我设置虚拟内存设为1536MB=1.5G,但我没有按它的要求设置,我只设置了1024MB=1G。
虚拟内存设置大小一般应该为物理内存的1.5倍为好,
如果物理内存为2G,虚拟内存应该设置为3G=3072MB,
如果物理内存为4G,那虚拟内存应该设置为6G=6144MB,
我的物理内存为1G,那虚拟内存应该设置为1.5G=1536MB,
注:1G=1024MB
6,开始修改我的虚拟内存:
一,仍然设置在C盘。
二,选择“自定义大小”,
三,把初始值与最大值都设置为1536MB=1.5G,(提示:最小值与最大值最好设置为相同,这样更利于电脑的性能稳定)
四,设置好后按“设置”按钮,这样才能生效。
五,最后按“确定”。
7,当按了“确定”后,会弹出提示框“要使改动生效,必须重新启动计算机”,虚拟内存设置完成。
注意事项
如果物理内存偏小,可以把虚拟内存设置得大一点,可以为物理内存的2倍或3倍。
如果物理内存已经很大,比如有4G或者8G,那就只要设置为1.5倍即可,太大了,反而浪费。
读文网小编分享了物理内存4g设虚拟内存的解决方法,希望大家喜欢。
浏览量:2
下载量:0
时间:
Windows大家都已经很熟悉物理内存和虚拟内存了把,现在小编带你们走进Linux的虚拟内存和物理内存吧。
物理内存,在应用中,自然是顾名思义,物理上,真实的插在板子上的内存是多大就是多大了。看机器配置的时候,看的就是这个物理内存。 虚拟内存,这个概念就要稍微了解一下CPU了,^_^,只是稍微,毕竟我们现在谈的是应用中的概念。我们应该知道,对于一般的32位CPU,有32根地址线,那么它的寻址空间就是4GB。也就是说,如果没有其他的限制,我们的主板上最大可以安装4GB的物理内存。哈哈,一般的机器是不会装那么多物理内存的,大把的银子啊,性价比可合不上。程序员可不管这个,我们对CPU编程,不能一台机器根据你物理内存的大小我编一个程序吧?那也太原始社会了吧。所以程序员都是直接使用的4GB的奢侈的进程空间(或许,不应该用奢侈这么短视的词。曾几何时,128M的物理内存也是我们不可想象的呢?)。这怎么办?总不能不用那些程序了吧。好吧,这个问题交给OS去解决吧。这样,OS就提出了一个虚拟内存的概念。就是进程、用户、不必考虑实际上物理内存的限制,而直接对4GB的进程空间进行寻址。如果所寻址的数据实际上不在物理内存中,那就从“虚拟内存”中来获取。这个虚拟内存可以是一个专门文件格式的磁盘分区(比如linux下的swap分区),也可以是硬盘上的某个足够大的文件(比如win下的那个i386文件,好像是这个名字)。物理内存中长期不用的数据,也可以转移到虚拟内存中。这样的交换由OS来控制,用户看起来就好像物理内存大了一样。有了虚拟内存的概念,我们就可以自由的使用4GB的进程空间了。但是,前提是你的硬盘由足够的空间,而且你舍得划分出(4GB-物理内存)大的虚拟内存空间来。^_^。一般情况下,虚拟内存的大小,各个OS也进行了限制(比如linux的swap分区的大小,win下也可以调整虚拟内存文件的大小和位置)。所以,我们程序所能使用的存储空间大小就是:物理内存+虚拟内存。要调大虚拟内存,右键单击我的电脑,属性,高级,性能的设置,高级选项卡
浏览量:3
下载量:0
时间:
大家可能都对电脑的内存熟悉,可是说起虚拟内存和物理内存的话,我想,大部分人还是不熟悉的,下面小编给您做一个介绍。
物理内存是真正的内存,在应用中顾名思义,物理上,真实的插在板子上的内存是多大就是多大了。看机器配置的时候,看的就是这个物理内存。
虚拟内存是为了满足系统对超出物理内存容量的需求时在外存(如硬盘)上开辟的存储空间。由于虚拟内存其实是放在外存上,因而与物理内存相比读写速度都非常慢
那么虚拟内存有什么作用呢?
我们知道, 32位CPU,有32根地址线,那么它的寻址空间就是4GB。也就是说,如果没有其它的限制,我们的主板上最大可以安装4GB的物理内存。但是一般的机器是不会装那么多物理内存,而有时软件应用时所需内存确大大超过了物理内存,这怎么办?总不能不用那些程序了吧。OS就提出了一个虚拟内存的概念。就是进程、用户、不必考虑实际上物理内存的限制,而直接对 4GB的进程空间进行寻址。如果所寻址的数据实际上不在物理内存中,那就从“虚拟内存”中来获取。一般情况下,虚拟内存的大小,各个OS也进行了限制(比如linux的swap分区的大小,win下也可以调整虚拟内存文件的大小和位置)。所以,我们程序所能使用的存储空间大小就是:物理内存+虚拟内存.
浏览量:2
下载量:0
时间:
有网友问到小编物理虚拟内存是什么,那么物理虚拟内存到底是什么呢?读文网小编为大家介绍下。供大家参考!
前一段时间在面试总监的时候,总监问了我这样的一个问题:你跟我说说物理内存和虚拟内存到底是怎么一回事?
其实之前我看过这个问题,据我理解的,当时是这么回答的“进程在运行的时候,操作系统都为其分配一个4GB的地址空间,即所谓的虚拟地址空间,一般情况下,当我们的程序很大的时候,实际的物理内存根本不能满足我们的需求的时候,这个时候操作系统就会借助磁盘空间来做虚拟的内存空间,把当前进程不需要的数据放在磁盘上,等到用到的时候,在利用调度算法把所需要的数据从磁盘空间上调度到内存,虚拟内存就是为了扩大内存的容量,每当我们要运行一个程序的时候经过编译以后形成的仅仅是逻辑上的空间,根本不是可以直接运行的内存空间,所以它还存在一个地址映射的概念。”当时感觉回答的很是笼统,只见总监在最后说了一句,你下去还是把这一块的内容在好好看看,所以今天就好好的把这个概念理一理。
首先我从最基本的概念说起,什么是物理内存的概念,虚拟内存的概念?
物理内存,在应用中,自然是顾名思义,物理上,真实的插在板子上的内存是多大就是多大了。而在CPU中的概念,物理内存就是CPU的地址线可以直接进行寻址的内存空间大小。比如8086只有20根地址线,那么它的寻址空间就是1MB,我们就说8086能支持1MB的物理内存,及时我们安装了128M的内存条在板子上,我们也只能说8086拥有1MB的物理内存空间。同理我们现在大部分使用的是32位的机子,32位的386以上CPU就可以支持最大4GB的物理内存空间了。
先说说为什么会有虚拟内存和物理内存的区别。正在运行的一个进程,他所需的内存是有可能大于内存条容量之和的,比如你的内存条是256M,你的程序却要创建一个2G的数据区,那么不是所有数据都能一起加载到内存(物理内存)中,势必有一部分数据要放到其他介质中(比如硬盘),待进程需要访问那部分数据时,在通过调度进入物理内存。所以,虚拟内存是进程运行时所有内存空间的总和,并且可能有一部分不在物理内存中,而物理内存就是我们平时所了解的内存条。有的地方呢,也叫这个虚拟内存为内存交换区。关键的是不要把虚拟内存跟真实的插在主板上的内存条相挂钩,虚拟内存它是“虚拟的”不存在,假的啦,它只是内存管理的一种抽象!
那么,什么是虚拟内存地址和物理内存地址呢。假设你的计算机是32位,那么它的地址总线是32位的,也就是它可以寻址0~0xFFFFFFFF(4G)的地址空间,但如果你的计算机只有256M的物理内存0x~0x0FFFFFFF(256M),同时你的进程产生了一个不在这256M地址空间中的地址,那么计算机该如何处理呢?回答这个问题前,先说明计算机的内存分页机制。
计算机会对虚拟内存地址空间(32位为4G)分页产生页(page),对物理内存地址空间(假设256M)分页产生页帧(page frame),这个页和页帧的大小是一样大的,所以呢,在这里,虚拟内存页的个数势必要大于物理内存页帧的个数。在计算机上有一个页表(page table),就是映射虚拟内存页到物理内存页的,更确切的说是页号到页帧号的映射,而且是一对一的映射。但是问题来了,虚拟内存页的个数 > 物理内存页帧的个数,岂不是有些虚拟内存页的地址永远没有对应的物理内存地址空间?不是的,操作系统是这样处理的。操作系统有个页面失效(page fault)功能。操作系统找到一个最少使用的页帧,让他失效,并把它写入磁盘,随后把需要访问的页放到页帧中,并修改页表中的映射,这样就保证所有的页都有被调度的可能了。这就是处理虚拟内存地址到物理内存的步骤。
现在来回答什么是虚拟内存地址和物理内存地址。虚拟内存地址由页号(与页表中的页号关联)和偏移量组成。页号就不必解释了,上面已经说了,页号对应的映射到一个页帧。那么,说说偏移量。偏移量就是我上面说的页(或者页帧)的大小,即这个页(或者页帧)到底能存多少数据。举个例子,有一个虚拟地址它的页号是4,偏移量是20,那么他的寻址过程是这样的:首先到页表中找到页号4对应的页帧号(比如为8),如果页不在内存中,则用失效机制调入页,否则把页帧号和偏移量传给MMU(CPU的内存管理单元)组成一个物理上真正存在的地址,接着就是访问物理内存中的数据了。总结起来说,虚拟内存地址的大小是与地址总线位数相关,物理内存地址的大小跟物理内存条的容量相关。
第一层理解
1. 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构
2. 一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪些地址有数据,哪些地址无数据,哪些可读,哪些可写,都可以通过这个链表记录
3. 每个进程已经分配的内存空间,都与对应的磁盘空间映射
问题:
计算机明明没有那么多内存(n个进程的话就需要n*4G)内存
建立一个进程,就要把磁盘上的程序文件拷贝到进程对应的内存中去,对于一个程序对应的多个进程这种情况,浪费内存!
第二层理解
1. 每个进程的4G内存空间只是虚拟内存空间,每次访问内存空间的某个地址,都需要把地址翻译为实际物理内存地址
2. 所有进程共享同一物理内存,每个进程只把自己目前需要的虚拟内存空间映射并存储到物理内存上。
3. 进程要知道哪些内存地址上的数据在物理内存上,哪些不在,还有在物理内存上的哪里,需要用页表来记录
4. 页表的每一个表项分两部分,第一部分记录此页是否在物理内存上,第二部分记录物理内存页的地址(如果在的话)
5. 当进程访问某个虚拟地址,去看页表,如果发现对应的数据不在物理内存中,则缺页异常
6. 缺页异常的处理过程,就是把进程需要的数据从磁盘上拷贝到物理内存中,如果内存已经满了,没有空地方了,那就找一个页覆盖,当然如果被覆盖的页曾经被修改过,需要将此页写回磁盘
总结:
优点:
1.既然每个进程的内存空间都是一致而且固定的,所以链接器在链接可执行文件时,可以设定内存地址,而不用去管这些数据最终实际的内存地址,这是有独立内存空间的好处
2.当不同的进程使用同样的代码时,比如库文件中的代码,物理内存中可以只存储一份这样的代码,不同的进程只需要把自己的虚拟内存映射过去就可以了,节省内存
3.在程序需要分配连续的内存空间的时候,只需要在虚拟内存空间分配连续空间,而不需要实际物理内存的连续空间,可以利用碎片。
另外,事实上,在每个进程创建加载时,内核只是为进程“创建”了虚拟内存的布局,具体就是初始化进程控制表中内存相关的链表,实际上并不立即就把虚拟内存对应位置的程序数据和代码(比如.text .data段)拷贝到物理内存中,只是建立好虚拟内存和磁盘文件之间的映射就好(叫做存储器映射),等到运行到对应的程序时,才会通过缺页异常,来拷贝数据。还有进程运行过程中,要动态分配内存,比如malloc时,也只是分配了虚拟内存,即为这块虚拟内存对应的页表项做相应设置,当进程真正访问到此数据时,才引发缺页异常。
补充理解:
虚拟存储器涉及三个概念: 虚拟存储空间,磁盘空间,内存空间
可以认为虚拟空间都被映射到了磁盘空间中,(事实上也是按需要映射到磁盘空间上,通过mmap),并且由页表记录映射位置,当访问到某个地址的时候,通过页表中的有效位,可以得知此数据是否在内存中,如果不是,则通过缺页异常,将磁盘对应的数据拷贝到内存中,如果没有空闲内存,则选择牺牲页面,替换其他页面。
mmap是用来建立从虚拟空间到磁盘空间的映射的,可以将一个虚拟空间地址映射到一个磁盘文件上,当不设置这个地址时,则由系统自动设置,函数返回对应的内存地址(虚拟地址),当访问这个地址的时候,就需要把磁盘上的内容拷贝到内存了,然后就可以读或者写,最后通过manmap可以将内存上的数据换回到磁盘,也就是解除虚拟空间和内存空间的映射,这也是一种读写磁盘文件的方法,也是一种进程共享数据的方法 共享内存
在内核态申请内存比在用户态申请内存要更为直接,它没有采用用户态那种延迟分配内存技术。内核认为一旦有内核函数申请内存,那么就必须立刻满足该申请内存的请求,并且这个请求一定是正确合理的。相反,对于用户态申请内存的请求,内核总是尽量延后分配物理内存,用户进程总是先获得一个虚拟内存区的使用权,最终通过缺页异常获得一块真正的物理内存。
1.物理内存的内核映射
IA32架构中内核虚拟地址空间只有1GB大小(从3GB到4GB),因此可以直接将1GB大小的物理内存(即常规内存)映射到内核地址空间,但超出1GB大小的物理内存(即高端内存)就不能映射到内核空间。为此,内核采取了下面的方法使得内核可以使用所有的物理内存。
1).高端内存不能全部映射到内核空间,也就是说这些物理内存没有对应的线性地址。不过,内核为每个物理页框都分配了对应的页框描述符,所有的页框描述符都保存在mem_map数组中,因此每个页框描述符的线性地址都是固定存在的。内核此时可以使用alloc_pages()和alloc_page()来分配高端内存,因为这些函数返回页框描述符的线性地址。
2).内核地址空间的后128MB专门用于映射高端内存,否则,没有线性地址的高端内存不能被内核所访问。这些高端内存的内核映射显然是暂时映射的,否则也只能映射128MB的高端内存。当内核需要访问高端内存时就临时在这个区域进行地址映射,使用完毕之后再用来进行其他高端内存的映射。
由于要进行高端内存的内核映射,因此直接能够映射的物理内存大小只有896MB,该值保存在high_memory中。内核地址空间的线性地址区间如下图所示:
从图中可以看出,内核采用了三种机制将高端内存映射到内核空间:永久内核映射,固定映射和vmalloc机制。
2.物理内存管理机制
基于物理内存在内核空间中的映射原理,物理内存的管理方式也有所不同。内核中物理内存的管理机制主要有伙伴算法,slab高速缓存和vmalloc机制。其中伙伴算法和slab高速缓存都在物理内存映射区分配物理内存,而vmalloc机制则在高端内存映射区分配物理内存。
伙伴算法
伙伴算法负责大块连续物理内存的分配和释放,以页框为基本单位。该机制可以避免外部碎片。
per-CPU页框高速缓存
内核经常请求和释放单个页框,该缓存包含预先分配的页框,用于满足本地CPU发出的单一页框请求。
slab缓存
slab缓存负责小块物理内存的分配,并且它也作为高速缓存,主要针对内核中经常分配并释放的对象。
vmalloc机制
vmalloc机制使得内核通过连续的线性地址来访问非连续的物理页框,这样可以最大限度的使用高端物理内存。
3.物理内存的分配
内核发出内存申请的请求时,根据内核函数调用接口将启用不同的内存分配器。
3.1 分区页框分配器
分区页框分配器 (zoned page frame allocator) ,处理对连续页框的内存分配请求。分区页框管理器分为两大部分:前端的管理区分配器和伙伴系统,如下图:
管理区分配器负责搜索一个能满足请求页框块大小的管理区。在每个管理区中,具体的页框分配工作由伙伴系统负责。为了达到更好的系统性能,单个页框的申请工作直接通过per-CPU页框高速缓存完成。
该分配器通过几个函数和宏来请求页框,它们之间的封装关系如下图所示。
这些函数和宏将核心的分配函数__alloc_pages_nodemask()封装,形成满足不同分配需求的分配函数。其中,alloc_pages()系列函数返回物理内存首页框描述符,__get_free_pages()系列函数返回内存的线性地址。
3.2 slab分配器
slab 分配器最初是为了解决物理内存的内部碎片而提出的,它将内核中常用的数据结构看做对象。slab分配器为每一种对象建立高速缓存。内核对该对象的分配和释放均是在这块高速缓存中操作。一种对象的slab分配器结构图如下:
可以看到每种对象的高速缓存是由若干个slab组成,每个slab是由若干个页框组成的。虽然slab分配器可以分配比单个页框更小的内存块,但它所需的所有内存都是通过伙伴算法分配的。
slab高速缓存分专用缓存和通用缓存。专用缓存是对特定的对象,比如为内存描述符创建高速缓存。通用缓存则是针对一般情况,适合分配任意大小的物理内存,其接口即为kmalloc()。
3.3 非连续内存区内存的分配
内核通过vmalloc()来申请非连续的物理内存,若申请成功,该函数返回连续内存区的起始地址,否则,返回NULL。vmalloc()和kmalloc()申请的内存有所不同,kmalloc()所申请内存的线性地址与物理地址都是连续的,而vmalloc()所申请的内存线性地址连续而物理地址则是离散的,两个地址之间通过内核页表进行映射。
vmalloc()的工作方式理解起来很简单:
1).寻找一个新的连续线性地址空间;
2).依次分配一组非连续的页框;
3).为线性地址空间和非连续页框建立映射关系,即修改内核页表;
vmalloc()的内存分配原理与用户态的内存分配相似,都是通过连续的虚拟内存来访问离散的物理内存,并且虚拟地址和物理地址之间是通过页表进行连接的,通过这种方式可以有效的使用物理内存。但是应该注意的是,vmalloc()申请物理内存时是立即分配的,因为内核认为这种内存分配请求是正当而且紧急的;相反,用户态有内存请求时,内核总是尽可能的延后,毕竟用户态跟内核态不在一个特权级。
看过“ 物理虚拟内存 ”
浏览量:2
下载量:0
时间:
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间)。那么内存条物理内存怎么设置虚拟内存?读文网小编内存条物理内存设置虚拟内存的相关资料,下面大家跟着读文网小编一起去了解一下吧。
1、右击这台电脑,单击”属性“。
2、在系统属性对话框,选择”高级系统设置“。如下图。
3、点击”性能“——”设置“。如下图。
4、找到性能选项对话框中的”高级“菜单,找到”虚拟内存“,点击”更改“。如下图。
5、将”自动管理所有驱动器的分页文件大小“前面的勾去掉。
6、然后选择系统盘c盘,设置虚拟内存一般原则是:虚拟内存不设置在系统盘。所以,选择c盘后,勾选”无分页文件“,再单击”设置“,弹出的提示框中选择”是“。这样c盘分页文件,也就是虚拟内存就设置为0了,提高了系统盘运行效率。
7、然后需要将虚拟内存设置到非系统盘。比如设置在F盘,勾选”自定义大小“,初始值和最大值都设置为2048Mb,然后单击”设置“。再单击下面的应用和确定完成修改。修改后重启win10系统后(www.xitonghe.com )生效。
8、之所以将虚拟内存初始值和最大值设置为一样大,是为了防止系统频繁请求不同大小的分页文件,无故消耗系统资源,提高运行效率。
看过“ 内存条物理内存怎么设置虚拟内存”
浏览量:3
下载量:0
时间:
在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址(Physical Address),又叫实际地址或绝对地址。,读文网小编为大家介绍一下物理内存与虚拟内存(虚拟地址)的区别,供大家参考!
零碎的叫法常常来自与相对感觉深奥诙涩的虚拟内存概念。物理的东西,人们大多不去碰它,毕竟是实实在在存在的。而虚拟内存就经常有别冒名顶替的。“一个进程有4个GB的虚拟内存”这样的说法屡见不鲜,其实,这是混淆了4GB的进程地址空间和虚拟内存这两个概念。也算令一种解释吧,毕竟那4个GB也是见不着影的,也是虚拟的。
浏览量:2
下载量:0
时间:
内存主要作用是在计算机运行时为操作系统和各种程序提供临时储存。常见的物理内存规格有256M、512M、1G、2G等,现如今随着计算机硬件的发展,已经出现4G、8G甚至更高容量的内存规格。当物理内存不足时,可以用虚拟内存代替。那么win7电脑中的物理内存和虚拟内存怎么查看呢?小编为大家分享了win7电脑中的物理内存和虚拟内存怎么查看的解决方法,下面大家跟着读文网小编一起来了解一下吧。
1.返回到桌面界面,找到计算机图标,然后右键点击,选择属性,就会出现如下图中所示的界面,这里的安装内存就是咱们想要查询的物理内存的大小值。
2.接下来,咱们还是在这个窗口,点击左侧菜单中的高级系统设置,然后在弹出来的系统属性窗口中切换到高级这一栏,然后点击性能后面的设置按钮,在出现窗口中的最后一项,便是电脑的虚拟内存了,一般来说,虚拟内存是可以设置的。
看过“ win7电脑中的物理内存和虚拟内存怎么查看 ”
浏览量:3
下载量:0
时间:
W7的虚拟内存能缓解当前的内存问题,那么,你们知道W7的2G的虚拟内存应该怎么设置吗?下面是读文网小编带来的关于win7 2g虚拟内存怎么设置的内容,欢迎阅读!
以加拿大滑雪圣地Blackcomb为开发代号的操作系统最初被计划为Windows XP和Windows Server 2003的后续版本。Blackcomb计划的主要特性是要强调数据的搜索查询和与之配套名为 WinFS 的高级文件系统。但在2003年,随着开发代号为Longhorn的过渡性简化版本的提出,Blackcomb计划被延后。
2003年中,Longhorn 具备了一些原计划在Blackcomb中出现的特性。2003年,三个在Windows操作系统上造成严重危害的病毒爆发后,微软改变了它的开发重点,把 一部分Longhorn上的主要开发计划搁置,转而为Windows XP和Windows Server 2003开发新的服务包。Windows Vista的开发工作被“重置”了,或者说在2004年9月推迟,许多特性被去掉了。
2006年初,Blackcomb被重命名为Vienna,然后又在2007年改称Windows Seven。2008年,微软宣布将Windows 7做为正式名称,成为现在的最终名称——Windows 7。
2008年1月,对选中的微软合作伙伴发布第一个公布版本Milestone 1,Build6519。在2008年的PDC(Professional Developers Conference,专业开发人员会议)上,微软发表了Windows 7的新工作列以及开始功能表,并在会议结束时发布了Build 6801,但是所发表的新工作列并没有在这个版本中出现。
浏览量:2
下载量:0
时间:
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),那么,你们知道W7的2G虚拟内存应该怎么设置为最好呢?下面是读文网小编带来的关于win7 2g虚拟内存怎么设置最好的内容,欢迎阅读!
虚拟内存最小值是物理内存的1到1.5倍;虚拟内存最大值是物理内存的2到2.5倍。即最小值建议为2-3G,最大值建议4-5G。
虚拟内存的设置方法:
1、右键单击“计算机”图标(XP为我的电脑)选择属性。
2、单击系统属性窗口里的“高级系统设置”标签,再单击弹出的对话框中的“设置”按钮。
3、在弹出来的性能选项窗口中单击“高级”,在下面的虚拟内存点击“更改”按钮。
4、弹出的对话框就是设置虚拟内存,虚拟内存最好在非系统盘里,选中盘符,点击“自定义大小”。输入“初始大小”和“最大值”,然后点击“设置”按钮。(虚拟内存最小值是物理内存的1到1.5倍;虚拟内存最大值是物理内存的2到2.5倍。)
5、出现“要使改动生效,需要重新启动计算机”的提示,单击“确定”即可。
6、在所有窗口中都点“确定”直到弹出“必须重新启动计算机才能使新的设置生效。”的提示,点击“是”,系统将自动重启。
重启完成后,虚拟内存就设置生效了。
浏览量:2
下载量:0
时间:
目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。那么,你们知道2G的内存在W7下应该把虚拟内存设置为多少最好呢?下面是读文网小编带来的关于win72g内存虚拟内存怎么设置最好的内容,欢迎阅读!
在桌面上右击我的电脑,选择属性。
点击高级系统设置。
在系统属性对话框中选择第一个设置,如下图所示。
点进去之后选择高级,如下图所示。
点击虚拟内存选项的更改选项,如下图所示。
勾掉自动管理所有驱动器的分页文件大小选项选择下方的自定义选项。
在方框里面输入合适的数字,一般虚拟内存的设置为实际内存的1.5倍到3倍。例如,实际内存为2G,可以设置最小为3G(3072M),最大为6G(6144M),但是具体的设置也不是很严格。看注意事项
浏览量:3
下载量:0
时间:
想知道在XP系统中2G的虚拟内存怎么设置最好吗,下面是读文网小编带来的关于xp系统2g虚拟内存怎么设置最好的内容,欢迎阅读!
我的电脑右键属性,这样是打开了系统属性
选择单击“高级”,然后能看到性能栏目。右边还有一个设置按钮
然后弹出 “性能选项”对话框,选择“高级”,在其中的“虚拟内存”栏中单击“更改”按钮
然后就出现了虚拟内存选项。能看到自定义,其中有初始大小,最大值。初始大小填物理内存大小就可以了,最大值可以填物理内存的2倍。效果不错的
浏览量:2
下载量:0
时间:
想知道2G的电脑内存应该把虚拟内存设置为多少吗,下面是读文网小编带来的关于电脑2g内存虚拟内存怎么设置的内容,欢迎阅读!
1.电脑虚拟内存不是越大越好
电脑虚拟内存不是越大越好,虚拟内存大小不要超过你物理内存的1.5倍,内存4G或者以上的、不玩大型游戏的可以不设置,因为虚拟内存对于硬盘消耗太大。
在进行虚拟内存设置之前,对电脑进行全盘清理,尤其是电脑磁盘清理。可以观看小编的经验。c盘空间越来越小怎么完美清理
2.虚拟内存设置步骤
右击计算机-属性-高级系统设置-高级-设置-高级-更改,选择系统管理的大小(推荐使用),点击确定。
3.自定义
如果你的电脑内存1G,2G,你又要运行较大的程序,可以进行自定义大小设置,最大值不大于物理内存的1.5倍,也可以使用系统的推荐,初始大小设置成物理内存大小。
4.虚拟内存的删除
点击无分页文件,点击设置-确定
5.虚拟内存更改位置
把c盘的虚拟文件删除后,点击D盘,点击系统管理的大小,点击设置,点击确定
浏览量:2
下载量:0
时间:
想知道2G的物理内存应该设置虚拟内存为多少吗,下面是读文网小编带来的关于内存2g虚拟内存设多大的内容,欢迎阅读!
1,在桌面点击“开始”,然后打开“控制面板”。
2,在控制面板内,打开“系统”快捷图标。
3,在系统属性窗口,选择“高级”->“性能”下的“设置”按钮。
4,在性能选项窗口中,选择“高级”->“虚拟内存”下的“更改”按钮。
5,在这里,显示的是我原来的虚拟内存设置,我的物理内存为1G,虚拟内存设置在C盘,它推荐我设置虚拟内存设为1536MB=1.5G,但我没有按它的要求设置,我只设置了1024MB=1G。
虚拟内存设置大小一般应该为物理内存的1.5倍为好,
如果物理内存为2G,虚拟内存应该设置为3G=3072MB,
如果物理内存为4G,那虚拟内存应该设置为6G=6144MB,
我的物理内存为1G,那虚拟内存应该设置为1.5G=1536MB,
注:1G=1024MB
开始修改我的虚拟内存:
仍然设置在C盘。
选择“自定义大小”,
把初始值与最大值都设置为1536MB=1.5G,(提示:最小值与最大值最好设置为相同,这样更利于电脑的性能稳定)
设置好后按“设置”按钮,这样才能生效。
最后按“确定”。
当按了“确定”后,会弹出提示框“要使改动生效,必须重新启动计算机”,虚拟内存设置完成。
浏览量:3
下载量:0
时间: