当前位置:首页 > 内存 > 正文

物理内存和虚拟内存是什么(物理内存16g虚拟内存怎么设置)

  • 内存
  • 2024-09-05 00:21:35
  • 1824

一、什么叫物理内存和虚拟内存类别:计算机/网络>>操作系统/系统故障
分析:
1.
物理内存,在应用中自然是顾名思义,物理上,实际插到板子上的内存有多大就多大。当您查看机器配置时,您会看到此物理内存。
虚拟内存,这个概念需要对CPU有一点了解,^_^,就一点点,毕竟我们是在应用中谈论这个概念。要知道,对于一般的32位CPU来说,地址线有32条,所以地址空间为4GB。也就是说,如果没有其他限制的话,我们的主板上最多可以安装4GB的物理内存。哈哈,一般的机器不会装太多的物理内存,要花不少钱,性价比没法比。程序员不关心这个我们在对CPU编程的时候,总不能根据你物理内存的大小来对机器进行编程吧?那社会就太原始了。因此,程序员直接使用4GB的豪华进程空间(或许,我们不应该用豪华这样短视的词,曾几何时,128M的物理内存对我们来说是不可想象的?)。该怎么办?如果没有这些程序我就不可能做到这一点。好吧,这个问题就交给操作系统来解决吧。这样,操作系统就提出了虚拟内存的概念。即进程和用户不需要考虑实际的物理内存限制,直接对4GB进程空间进行寻址。如果要寻址的数据实际上不在物理内存中,则从“虚拟内存”中获取。这个虚拟内存可以是特殊文件格式的磁盘分区(如Linux下的swap分区),也可以是硬盘上相当大的文件(如win下的i386文件,好像就是这个名字)。物理内存中长期不用的数据也可以转移到虚拟内存中。这种类型的交换由操作系统控制,并且对用户来说似乎物理内存更大。有了虚拟内存的概念,我们就可以自由使用4GB的进程空间了。不过,前提是你的硬盘有足够的空间,并且你愿意分配较大的虚拟内存空间(4GB物理内存)。^_^。一般情况下,虚拟内存的大小也受到各个操作系统的限制(如Linux中交换分区的大小,win下也可以调整虚拟内存文件的大小和位置)。因此,我们的程序可以使用的存储空间大小为:物理内存+虚拟内存。
中的概念。
物理内存,CPU地址线可以直接寻址的内存空间的大小。例如,8086只有20条地址线,因此它的地址空间为1MB。假设8086可以支持1MB物理内存。即使我们在板上安装了128M的内存模块,我们也只能说8086有1MB的物理内存空间。同样,32位386或更高的CPU可以支持最大4GB的物理内存空间。
虚拟内存,这是一个与CPU寻址方式相关的概念。在x86架构中,为了更好地管理内存空间,内存以分段的方式寻址。例如8086使用两字节的段基地址和两字节的偏移地址来对整个可寻址内存空间进行寻址,即:mode0000:0000(具体如何计算实际地址,参见各种编译的教材)。这样处理整个1MB物理内存空间是没有问题的。然而,这样,最大可寻址地址是10FFEF。这就超过了20条地址线的FFEF地址大小空间,可以说是8086虚拟内存,因此可以说8086虚拟内存地址空间可以达到10FFEF。^_^如何使用和对待这块内存取决于A20线是否门控。同样,386以上的CPU在保护模式下使用GDT和LDT将段定义放置在内存中,这样就可以使用16位段地址和32位偏移地址。这样算下来,386以上的CPU虚拟内存地址空间可以达到64TB。真是太神奇了。看来这么大的地址空间一时不能通过软件开发来消除。
3.片段名称。
系统的名称常常来自于虚拟内存这个有点神秘的概念。大多数人不会接触物理事物,毕竟它们确实存在。而且虚拟记忆常常是伪造的。“一个进程有4GB虚拟内存”这一说法并不常见。事实上,这混淆了4GB进程地址空间和虚拟内存这两个概念。也算是一种解释吧,毕竟4GB是看不见的、虚拟的。


二、什么叫做虚拟内存?虚拟内存和物理内存有什么区别?虚拟内存使用一块磁盘空间来帮助物理内存工作。虚拟内存是硬盘空间,物理内存是内存,速度相差至少100倍。虚拟内存也称为虚拟内存(VirtualMemory)。计算机中运行的所有程序都必须通过内存来运行。如果执行的程序占用大量内存,就会造成内存泄漏。虚拟内存和物理内存有什么区别?