为您找到与物理内存和虚拟内存有什么区别相关的共200个结果:
在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址(Physical Address),又叫实际地址或绝对地址。,读文网小编为大家介绍一下物理内存与虚拟内存(虚拟地址)的区别,供大家参考!
零碎的叫法常常来自与相对感觉深奥诙涩的虚拟内存概念。物理的东西,人们大多不去碰它,毕竟是实实在在存在的。而虚拟内存就经常有别冒名顶替的。“一个进程有4个GB的虚拟内存”这样的说法屡见不鲜,其实,这是混淆了4GB的进程地址空间和虚拟内存这两个概念。也算令一种解释吧,毕竟那4个GB也是见不着影的,也是虚拟的。
浏览量:2
下载量:0
时间:
组装电脑,内存是大家比较关注的电脑硬件,如今内存的价格与容量都比较大,内存目前2G也仅100元左右,内存知识方面我们常听说的“虚拟内存”和 “物理内存”是不能混为一谈的。接下来由读文网小编为大家推荐的技巧,希望对你有所帮助!
我们主要从以下方面对电脑物理内存与虚拟内存之间的关系:
物理内存是真正的内存,在应用中顾名思义,物理上,真实的插在板子上的内存是多大就是多大了。看机器配置的时候,看的就是这个物理内存。
虚拟内存是为了满足系统对超出物理内存容量的需求时在外存(如硬盘)上开辟的存储空间。由于虚拟内存其实是放在外存上,因而与物理内存相比读写速度比较慢。那么虚拟内存有什么作用呢?
我们知道, 32位CPU,有32根地址线,那么它的寻址空间就是4GB。也就是说,如果没有其它的限制,我们的主板上最大可以安装4GB的物理内存。但是一般的机器 是不会装那么多物理内存,而有时软件应用时所需内存确大大超过了物理内存,这怎么办?总不能不用那些程序了吧。OS就提出了一个虚拟内存的概念。就是进 程、用户、不必考虑实际上物理内存的限制,而直接对 4GB的进程空间进行寻址。如果所寻址的数据实际上不在物理内存中,那就从“虚拟内存”中来获取。
一般情况下,虚拟内存的大小,各个OS也进行了限制(比 如linux的swap分区的大小,win下也可以调整虚拟内存文件的大小和位置)。所以,我们程序所能使用的存储空间大小就是:物理内存+虚拟内存。
浏览量:4
下载量:0
时间:
当我们选购回来一条内存条,上面标明着128M。你可能知道这就是我们说的“物理内存”,可你知道什么是虚拟内存吗,它和物理内存又有着什么样的区别呢?不要心急,今天读文网小编就为大家整理了一套相关知识,希望能帮到大家。
和许多电脑软件一样,虚拟内存也是可以被优化的,首先我们可以尝试改变页面文件的位置,此举的目的就是为了保证虚拟内存能连续被使用,当页面文件被存放在磁盘上的不同区域是,磁头读取时就要跳来跳去,不利于效率的提高。其次我们可以改变页面文件的大小,一般情况下,我们将最小页面文件设定值调到尽量小,这样就能保证在内存中尽可能多地存储数据,相应的效率也就越高,然后我们把最大页面文件设定得更大,这样一来可以避免“超载”的情况。通常情况下,虚拟内存经过以上两种方式就可以达到最大的优化效果。
相信经过了以上这些关于物理内存和虚拟内存的知识讲解,大家都能够轻松对自己的电脑虚拟硬盘进行操作了,
浏览量:3
下载量:0
时间:
内存主要作用是在计算机运行时为操作系统和各种程序提供临时储存。常见的物理内存规格有256M、512M、1G、2G等,现如今随着计算机硬件的发展,已经出现4G、8G甚至更高容量的内存规格。当物理内存不足时,可以用虚拟内存代替。那么win7电脑中的物理内存和虚拟内存怎么查看呢?小编为大家分享了win7电脑中的物理内存和虚拟内存怎么查看的解决方法,下面大家跟着读文网小编一起来了解一下吧。
1.返回到桌面界面,找到计算机图标,然后右键点击,选择属性,就会出现如下图中所示的界面,这里的安装内存就是咱们想要查询的物理内存的大小值。
2.接下来,咱们还是在这个窗口,点击左侧菜单中的高级系统设置,然后在弹出来的系统属性窗口中切换到高级这一栏,然后点击性能后面的设置按钮,在出现窗口中的最后一项,便是电脑的虚拟内存了,一般来说,虚拟内存是可以设置的。
看过“ win7电脑中的物理内存和虚拟内存怎么查看 ”
浏览量:3
下载量:0
时间:
最近不少朋友问到关于IP地址和物理地址有什么区别这样的问题,那么IP地址和物理地址有什么区别呢?读文网小编整理了物理地址的相关资料,下面大家跟着读文网小编一起去了解一下吧。
对于数量不多的几台机器,我们可以这样获取MAC地址:在Windows 98/Me中,依次单击“开始”→“运行” →输入“winipcfg”→回车。即可看到MAC地址。
在Windows 2000/XP中,依次单击“开始”→“运行”→输入“CMD”→回车→输入“ipconfig /all”→回车。即可看到MAC地址
看过“ IP地址和物理地址有什么区别”
浏览量:3
下载量: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
时间:
今天读文网小编给大家介绍一下物理地址和逻辑地址的区别。供大家参考!
参考如下
MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,
1.MAC地址
网卡MAC地址不是随便定义的,它的组成结构如图所示。
1>后3个字节代表该制造商所制造的某个网络产品(如网卡)的系列号,前3个字节表示代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配
2>以太网的地址为48位,由IEEE统一分配给网卡制造商,每个网卡的地址都必须是全球唯一的。共6个字节的长度。FF:FF:FF:FF:FF:FF为广播地址,只能用在目的地址段,不能作为源地址段。目的地址为广播地址的数据包,可以被一个局域网内的所有网卡接收到。合法的以太网地址第32位组播标志必须为0。作为组播地址时,只能作为目的地址,不能作为源地址。组播地址可以被支持该组播地址的一组网卡接收到。组播地址主要用在视频广播,远程唤醒(通过发一个特殊的数据包使网卡产生一个中断信号,启动电脑),游戏(多个人在局域网里联机打游戏)里等。
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
虚拟内存(Virtual Memory) 是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就可以完成这个任务。采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux 0.11内核中,给每个程序(进程)都划分了总容量为64MB的虚拟内存空间。因此程序的逻辑地址范围是0x0000000到0x4000000。
有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。
逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。
读文网小编介绍了物理地址和逻辑地址区别的相关知识,希望你喜欢。
浏览量:1
下载量:0
时间:
大家可能都对电脑的内存熟悉,可是说起虚拟内存和物理内存的话,我想,大部分人还是不熟悉的,下面小编给您做一个介绍。
物理内存是真正的内存,在应用中顾名思义,物理上,真实的插在板子上的内存是多大就是多大了。看机器配置的时候,看的就是这个物理内存。
虚拟内存是为了满足系统对超出物理内存容量的需求时在外存(如硬盘)上开辟的存储空间。由于虚拟内存其实是放在外存上,因而与物理内存相比读写速度都非常慢
那么虚拟内存有什么作用呢?
我们知道, 32位CPU,有32根地址线,那么它的寻址空间就是4GB。也就是说,如果没有其它的限制,我们的主板上最大可以安装4GB的物理内存。但是一般的机器是不会装那么多物理内存,而有时软件应用时所需内存确大大超过了物理内存,这怎么办?总不能不用那些程序了吧。OS就提出了一个虚拟内存的概念。就是进程、用户、不必考虑实际上物理内存的限制,而直接对 4GB的进程空间进行寻址。如果所寻址的数据实际上不在物理内存中,那就从“虚拟内存”中来获取。一般情况下,虚拟内存的大小,各个OS也进行了限制(比如linux的swap分区的大小,win下也可以调整虚拟内存文件的大小和位置)。所以,我们程序所能使用的存储空间大小就是:物理内存+虚拟内存.
浏览量:2
下载量:0
时间:
读文网小编今天为大家分享了虚拟地址和物理地址的区别和联系,欢迎大家前来阅读。
CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit,内存管理单元),或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到CPU芯片的外部地址引脚上,直接被内存芯片(以下称为物理内存,以便与虚拟内存区分)接收,这称为物理地址(Physical Address,以下简称PA),如下图所示。
如果CPU启用了MMU,CPU核发出的地址将被MMU截获,从CPU到MMU的地址称为虚拟地址(Virtual Address,以下简称VA),而MMU将这个地址翻译成另一个地址发到CPU芯片的外部地址引脚上,也就是将虚拟地址映射成物理地址,如下图所示。
MMU将虚拟地址映射到物理地址是以页(Page)为单位的,对于32位CPU通常一页为4K。例如,虚拟地址0xb700 1000~0xb700 1fff是一个页,可能被MMU映射到物理地址0x2000~0x2fff,物理内存中的一个物理页面也称为一个页框(Page Frame)。
物理地址(physical address)
用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。
虚拟内存(virtual memory)
这是对整个内存(不要与机器上插那条对上号)的抽像描述。它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”内存,例如,一个0x08000000内存地址,它并不对就物理地址上那个大数组中0x08000000 - 1那个地址元素;
之所以是这样,是因为现代操作系统都提供了一种内存管理的抽像,即虚拟内存(virtual memory)。进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。这个“转换”,是所有问题讨论的关键。
有了这样的抽像,一个程序,就可以使用比真实物理地址大得多的地址空间。(拆东墙,补西墙,银行也是这样子做的),甚至多个进程可以使用相同的地址。不奇怪,因为转换后的物理地址并非相同的。
——可以把连接后的程序反编译看一下,发现连接器已经为程序分配了一个地址,例如,要调用某个函数A,代码不是call A,而是call 0x0811111111 ,也就是说,函数A的地址已经被定下来了。没有这样的“转换”,没有虚拟地址的概念,这样做是根本行不通的。
打住了,这个问题再说下去,就收不住了。
逻辑地址(logical address)
Intel为了兼容,将远古时代的段式内存管理方式保留了下来。逻辑地址指的是机器语言指令中,用来指定一个操作数或者是一条指令的地址。以上例,我们说的连接器为A分配的0x08111111这个地址就是逻辑地址。
——不过不好意思,这样说,好像又违背了Intel中段式管理中,对逻辑地址要求,“一个逻辑地址,是由一个段标识符加上一个指定段内相对地址的偏移量,表示为 [段标识符:段内偏移量],也就是说,上例中那个0x08111111,应该表示为[A的代码段标识符: 0x08111111],这样,才完整一些”
线性地址(linear address)或也叫虚拟地址(virtual address)
跟逻辑地址类似,它也是一个不真实的地址,如果逻辑地址是对应的硬件平台段式管理转换前地址的话,那么线性地址则对应了硬件页式内存的转换前地址。
读文网小编分享了虚拟地址和物理地址的区别和联系,希望大家喜欢。
浏览量:3
下载量: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
时间:
电脑在运行时,偶尔会出现提示“虚拟内存不足,请增加你的虚拟内存”信息,虚拟内存是什么?怎样增大虚拟内存?但是又有网友这么跟读文网小编说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
时间:
有网友说Linux的内存与Windows的内存有区别吧?针对这个问题,读文网小编就给大家整理了相关文章给大家普及下关于Linux 虚拟内存和物理内存的理解。
IA32架构中内核虚拟地址空间只有1GB大小(从3GB到4GB),因此可以直接将1GB大小的物理内存(即常规内存)映射到内核地址空间,但超出1GB大小的物理内存(即高端内存)就不能映射到内核空间。为此,内核采取了下面的方法使得内核可以使用所有的物理内存。
1).高端内存不能全部映射到内核空间,也就是说这些物理内存没有对应的线性地址。不过,内核为每个物理页框都分配了对应的页框描述符,所有的页框描述符都保存在mem_map数组中,因此每个页框描述符的线性地址都是固定存在的。内核此时可以使用alloc_pages()和alloc_page()来分配高端内存,因为这些函数返回页框描述符的线性地址。
2).内核地址空间的后128MB专门用于映射高端内存,否则,没有线性地址的高端内存不能被内核所访问。这些高端内存的内核映射显然是暂时映射的,否则也只能映射128MB的高端内存。当内核需要访问高端内存时就临时在这个区域进行地址映射,使用完毕之后再用来进行其他高端内存的映射。
由于要进行高端内存的内核映射,因此直接能够映射的物理内存大小只有896MB,该值保存在high_memory中。内核地址空间的线性地址区间如下图所示:
从图中可以看出,内核采用了三种机制将高端内存映射到内核空间:永久内核映射,固定映射和vmalloc机制。
浏览量:2
下载量:0
时间:
有win7用户反映说在玩游戏的时候系统一直提示虚拟内存太小,那么win7玩游戏时出现虚拟内存太小怎么解决呢?就让读文网小编来告诉大家解决win7玩游戏时出现虚拟内存太小的方法吧,希望可以帮助到大家。
原因分析及解决:
最快的方法就是释放已用的内存,一是把其它正在使用的程序或浏览器关闭,二是使用360加速球应用清理系统内存和垃圾,并且关闭用不上的服务。
提高电脑的虚拟内存,提高虚拟内存可以让更多的程序在虚拟内存中运行,保证内存足够的大小。设置虚拟内存方法是,选择我的电脑,右键查看属性,点击高级设置性能选项。
在性能选项选择高级,点击更改虚拟内存选项,设置虚拟内存放置的硬盘分区,放C盘是最好的。接着设置初始值和最大值,初始值可以设置为物理内存的1.5倍,最大值可以设置为内存的3倍。
给电脑添加物理内存条,物理内存的高低才是解决内存不足的根本,可以购买一条两G左右的内存,插入电脑的主板内存插槽上即可。
将电脑桌面上的文件保存到系统盘外的其它盘并减少桌面图标,因为桌面的文件默认是保存在C盘的,是会占用电脑运行内存的。
在电脑使用过程中,剪切板中每复制保存一张图片,就会临时站内大量的内存,那么在电脑编辑图片完成后,需要清理剪贴板中的文件。那么可以在运行中输入“CLipbrd”,出现剪贴板查看器,在“编辑”里面点“删除”,选择“全部删除”,选择“是”。
保证电脑内存运行顺畅还需要电脑其它硬件的配合,显存、CPU等都能影响到内存的有效使用,那么在升级内存的同时也不妨考虑升级下电脑其它硬件。
浏览量:3
下载量:0
时间:
许多人对BIOS和CMOS经常混为一谈。我们总是会把BIOS和CMOS认为是一个感念的东西,但其实BIOS和CMOS是有区别的,今天读文网小编给大家介绍下BIOS和CMOS的区别吧。
今天小编用通俗的语言来给你解决一下:BIOS指的是软件,CMOS指的是硬件。
BIOS是什么?
所谓BIOS,实际上就是微机的基本输入输出系统(Basic Input-Output System),其内容集成在微机主板上的一个ROM芯片上,主要保存着有关微机系统最重要的基本输入输出程序,系统信息设置、开机上电自检程序和系统启动自举程序等。
BIOS的功用
BIOS ROM芯片不但可以在主板上看到,而且BIOS管理功能如何在很大程度上决定了主板性能是否优越。BIOS管理功能主要包括:
1. BIOS中断服务程序
BIOS中断服务程序实质上是微机系统中软件与硬件之间的一个可编程接口,主要用来在程序软件与微机硬件之间实现衔接。例如,DOS和 Windows操作系统中对软盘、硬盘、光驱、键盘、显示器等外围设备的管理,都是直接建立在BIOS系统中断服务程序的基础上,而且操作人员也可以通过访问INT 5、INT 13等中断点而直接调用BIOS中断服务程序。
2.BIOS系统设置程序
微机部件配置记录是放在一块可读写的 CMOS RAM 芯片中的,主要保存着系统基本情况、CPU特性、软硬盘驱动器、显示器、键盘等部件的信息。在 BIOS ROM芯片中装有"系统设置程序",主要用来设置CMOS RAM中的各项参数。这个程序在开机时按下某个特定键即可进入设置状态,并提供了良好的界面供操作人员使用。事实上,这个设置CMOS参数的过程,习惯上也称为" BIOS设置"。一旦CMOS RAM芯片中关于微机的配置信息不正确时,轻者会使得系统整体运行性能降低、软硬盘驱动器等部件不能识别,严重时就会由此引发一系统的软硬件故障。
3. POST上电自检
微机按通电源后,系统首先由POST(Power On Self Test,上电自检)程序来对内部各个设备进行检查。通常完整的POST自检将包括对 CPU、640K基本内存、 1M以上的扩展内存、ROM、主板、CMOS存贮器、串并口、显示卡、软硬盘子系统及键盘进行测试,一旦在自检中发现问题,系统将给出提示信息或鸣笛警告。
4. BIOS系统启动自举程序
系统在完成 POST自检后, ROM BIOS 就首先按照系统 CMOS设置中保存的启动顺序搜寻软硬盘驱动器及CD-ROM、网络服务器等有效地启动驱动器,读入操作系统引导记录,然后将系统控制权交给引导记录,并由引导记录来完成系统的顺利启动。
CMOS里面保存了主板里面很多重要的设置信息,我们如果要修改它里面的配置,就必须通过BIOS去修改,这就是他们的联系。通过下面二张对比图,可以你更能直观的理解二者的区别:
BIOS界面
浏览量:2
下载量:0
时间:
许多网友在更新Windows 10或下载Windows 10时,有时可能会因为Windows 10有各种各样的版本而不知道如何做出选择,读文网小编分享了windows10各版本对比区别介绍,希望对大家有所帮助。
Windows 10家庭版
对于大多数购买新PC机的用户来讲,他们最有可能得到的就是Windows 10家庭版,它具备Windows 10的关键功能,包括全新的开始菜单、Edge浏览器、Windows Hello生物特征认证登录以及虚拟语音助理Cortana。
Windows 10家庭版还将会包括游戏串流功能,允许游戏玩家在PC上直接进行Xbox One游戏。当然了,为了提高系统的安全性,家庭版用户对于来自Windows Update的关键安全更新不具备自主选择权,系统会自行安装。
Windows 10家庭版包括针对平板电脑设计的“Continuum”功能,它向用户提供简化的任务栏以及开始菜单,应用程序也会以全屏模式运行。对于Windows 7或Windows 8.1家庭版用户来讲,可以免费升级至Windows 10家庭版。
Windows 10专业版
如果你的PC机是用于商业用途,Windows 10专业版将会带来Windows 10家庭版之外的功能,例如加入域、Azure Active Directory用于单点登录到云服务等。
同时,Windows 10专业版还将会为用户带来Hyper-V客户端(虚拟化)、BitLocker全磁盘加密、企业模式IE浏览器、远程桌面、Windows商业应用商店、企业数据保护容器以及接受特别针对商业用户推出的更新功能。
对于Windows 7和8.1专业版用户来讲,他们可以免费升级至Windows 10专业版。
Windows 10企业版
Windows 10企业版中包括专业版所提供的所有商业功能,并且还针对大型企业提供一系列更加强大的功能,包括无需即可连接的Direct Access、支持应用白名单的AppLocker、通过点对点连接与其他PC共享下载与更新的BranchCache以及基于组策略控制的开始屏幕。
Credential Guard(凭据保护)和Device Guard(设备保护)可以用来保护Windows登录凭据以及针对某台特定PC可以运行的应用程序进行限制。
Windows 10的免费升级策略并不适用于Windows企业版,用户只能通过批量许可授权去获得。
Windows 10教育版
教育版是在Windows 10推出之后才出现的,它是专门为大型学术机构(例如大学)设计的版本,它具备Windows 10企业版中的安全、管理及连接功能。
Windows 10教育版中的功能与Windows 10企业版几乎相同,但是它并不具备Long Term Servicing Branch更新选项。用户可以自Windows 10家庭版直接升级至Windows 10教育版。
Windows 10移动版
如果你使用Windows Phone或者是运行Windows 8.1的小尺寸平板电脑,那么你们将可以升级到Windows 10移动版。5英寸、6英寸智能手机或7英寸平板电脑之间的差异并不是太大,因此它们具备相同的用户界面以及相同的通用应用程序。
Windows 10移动版中包括Windows 10中的关键功能,包括Edge浏览器以及全新触摸友好版的Office,但是它并未内置IE浏览器。如果你的硬件条件充分的话,你将能够将手机或平板电脑直接插入显示屏,并且获得Continuum用户界面,它将会为你带来更大的开始菜单以及与PC中通用应用相同的用户界面。
Windows 10移动企业版
这个版本是针对大型企业用户推出的,它采用了与企业版类似的批量授权许可模式,但是微软并未对外透露相关的细节。
Windows 10物联网版
如果你拥有一台树莓派2(Raspberry Pi 2)或者是一个英特尔Galileo,那么就可以将免费的Windows 10物联网版刷入其中,然后运行通用应用。微软还提供了其他针对销售终端、ATM或其他嵌入式设备设计的工业以及移动版本的Windows 10。
工业版Windows 10仅支持x86架构的系统,而移动版可能同时支持x86以及ARM架构的处理器,它们可以运行通用应用。
浏览量:2
下载量:0
时间:
可能还有些网友不太了解硬盘有物理坏道的问题,下面就由读文网小编给你们介绍硬盘有物理坏道的解决方法吧,希望能帮到大家哦!
如果真是物理坏道,自已是没有办法修复的,如果是盘体的物理划伤,那么就连厂家也无法妙手回春,只能通过软件将坏了的部分划开,这样硬盘容量就会变小。
如果无法确定是否是物理坏道,可以用DM之类的硬盘软件把硬盘数据填零, 填零等于是将数据全部抹干净(低格相当于抹了之后重新划格子),如果是逻辑坏道,在填零的过程中就会被修复,如果重新检测还有坏道显示的话那就基本可以确定是物理坏道了。
其次:
坏道不严重的话其实不影响正常使用,实在不行就只有换了,电脑卡多数是系统问题,看看系统有没有优化的可能
卡住不一定就是硬盘问题,可能是安装的软件太多,或者电脑配置落伍了你可以重新安装系统,试试看有没有改善平时尽量养成良好的使用习惯,不安装来历不明的软件,如果电脑配置比较一般,可以不安装杀毒软件,这样运行会快很多,至于是否硬盘有坏道,你可以用软件检测一下,比如鲁大师等。希望对你有帮助
可以先用检测软件看看硬盘是不是有坏道了,推荐HDtune,比较好用。如果检测出坏道的确比较多,可以用电脑自带的磁盘修复功能修复一下,但是如果出现物理坏道,那么是没法修复的。建议楼主先把硬盘修复,把里面的内容拷贝,然后低格硬盘,彻底格式化一次。
局部坏道的话,可以用PQ分区软件隐藏坏道部分,然后分区正常使用,如果是大面积坏道,建议更换一块新硬盘
用MHDD检测,如果坏道分布很多,那就直接换硬盘,现在硬盘价格不贵,1T的400不到。如果个把坏道,用PQ将坏道所在区域屏蔽出来不用。类似这样的情况,我已经给别人处理很多块硬盘了,几年都还能正常使用。
看过“硬盘有物理坏道怎么办”
浏览量:3
下载量:0
时间: