蘑菇声活

首页 > 数码 > 软件 > 物理内存是什么

物理内存是什么

扮鬼臉o(>﹏<)o 308627 2020-10-12 内存物理虚拟内存 我要评论()

物理内存(Physical memory)是相对于虚拟内存而言的。物理内存指通过物理内存条而获得的内存空间,而虚拟内存则是指将硬盘的一块区域划分来作为内存。内存主要作用是在计算机运行时为操作系统和各种程序提供临时储存。

物理内存(Physical memory)是相对于虚拟内存而言的。物理内存指通过物理内存条而获得的内存空间,而虚拟内存则是指将硬盘的一块区域划分来作为内存。内存主要作用是在计算机运行时为操作系统和各种程序提供临时储存。常见的物理内存规格有 256M、512M、1G、2G 等,现如今随着计算机硬件的发展,已经出现 4G、8G 甚至更高容量的内存规格。当物理内存不足时,可以用虚拟内存代替。在应用中,自然是顾名思义,物理上,真实存在的插在主板内存槽上的内存条的容量的大小。看计算机配置的时候,主要看的就是这个物理内存。

物理内存是什么

概念

应用中的描述

物理内存是计算机上的最重要的资源之一。Windows 的内存管理器负责给活动进程、设备驱动,和操作系统自己分配内存。因为绝大多数系统所能访问的数据和代码远比物理内存多,所以从本质上来说,物理内存是代码和数据在其中运行的窗口。所以内存容量对性能有影响,因为如果进程或者操作系统所需的代码或者数据不存在,内存管理器就需要从磁盘中读取这些内容。

CPU 中的描述

物理内存,CPU 的地址线可以直接进行寻址的内存空间大小。比如 8086 只有 20 根地址线,那它的寻址空间就是 1MB。我们就说 8086 能支持 1MB 的物理内存。即使我们安装了 128M 的内存条在板子上,我们也只能说 8086 拥有 1MB 的物理内存空间。同理 32 位的 386 以上 CPU,就可以支持最大 4GB 的物理内存空间了。

虚拟内存与物理内存的区别:虚拟内存就与物理内存相反,是指根据系统需要从硬盘虚拟地匀出来的内存空间,是一种计算机系统内存管理技术,属于计算机程序,而物理内存为硬件。因为有时候当你处理大的程序时候系统内存不够用,此时就会把硬盘当内存来使用,来交换数据做缓存区,不过物理内存的处理速度是虚拟内存的 30 倍以上。

意义

除了会对性能造成影响,物理内存的容量还会影响其他资源。例如,对于非分页池来说,这是由物理内存提供后备的操作系统缓冲,很明显,其容量会受到物理内存的限制。物理内存也会对系统的虚拟内存限制有影响,虚拟内存的大小等于物理内存容量、再加上所有页面文件的最大容量。物理内存还会对进程的最大数量具有间接的影响,笔者将会在今后的文章里专门提到线程和进程的限制。

Windows 对于物理内存的支持,要受到诸如硬件限制、许可、操作系统数据结构,以及驱动程序的兼容性等方面的综合影响。MSDN 网站的 Memory Limits for Windows Releases 文章对不同 Windows 版本、以及同一个版本的不同 SKU 的限制进行介绍。

我们可以查看所有 Windows 版本的不同 SKU 的物理内存支持许可。例如,32 位 Windows Server 2008 标准版仅支持 4GB,而 32 位 Windows Server 2008 数据中心版支持 64GB。类似的,64 位 Windows Server 2008 标准版支持 32GB,而 64 位 Windows Server 2008 数据中心版支持 2TB。内存,不过 Windows Server 性能产品组知道有两台服务器拥有那么多的内存,其中一台位于某地的实验室。该服务器的任务管理器如下图所示:32 位的最大限制是 128GB,Windows Server 2003 数据中心版可以支持,这是因为在大内存的系统上,内存管理器用来追踪物理内存的结构,需要消耗更多系统虚拟地址空间。内存管理器把每个内存页的追踪数据保存在叫做 PFN 数据库的数组中,而且考虑到性能因素,会把整个 PFN 数据库映射到虚拟内存中。因为它用 28 字节的数据结构来代表每个内存页,128GB 系统的 PFN 数据库需要将近 930MB 的空间。32 位 Windows 拥有 4GB 的虚拟地址空间,由硬件所定义,默认划分为两半,其中一半供用户模式进程(例如 Notepad)所使用,另一半供系统所使用。因此 980MB 的容量就要占据将近一半的系统虚拟地址空间(共 2GB),只剩下约 1GB 空间可以用来映射内核、驱动程序、系统缓存和其他系统数据结构:

内存限制

64 位 Windows 客户端,不同 SKU 的内存支持也有所不同,Windows XP Starter 版的内存支持最低,仅 512MB,而 Windows Vista 旗舰版的内存支持最高,可达 128GB。但是所有版本的 32 位 Windows 客户端 SKU,包括 Windows Vista、Windows XP 和 Windows 2000 Professional,最大支持 4GB 物理内存。标准的 X86 内存管理模式,最大可以支持 4GB 的物理地址访问。在早期,并不需要考虑在客户端提供超过 4GB 的支持,因为当时很少有计算机配备那么高的内存,哪怕是服务器。

但是在 Windows XP SP2 开发的过程中,已经可以预见客户端计算机将会配备超过 4GB 的内存,所以 Windows 产品组对超过 4GB 的 Windows XP 计算机进行大量的测试。Windows XP SP2 还支持物理地址扩展(PAE)功能,该功能本来是为了在硬件上实现非执行(NX)保护,因为这是数据执行保护(DEP)的必要条件,但是该功能还可以支持超过 4GB 的内存。

Windows 产品组的工程师发现,很多测试计算机会发生崩溃、挂起或者无法启动的故障现象,这是因为某些设备驱动程序所导致的,主要是一些客户端计算机(而非服务器)上的显卡或者声卡,其驱动程序在编写时没有考虑到内存大于 4GB 的情况。所以,这些驱动程序会截去那部分地址,从而导致内存冲突以及其他副作用。而服务器则通常会配备更加常规的硬件设备,其驱动程序更加简单稳定,因为通常来说碰到这些问题的几率很小。由于客户端设备驱动程序所存在的这些问题,迫使 Windows 客户端 SKU 只能忽略高于 4GB 的那部分物理内存,哪怕从理论上来说可以对其进行寻址。

最新文章

  • 生活
  • 美食
  • 数码
  • 时尚
  • 教育
  • 汽车

发表评论