【操作系统】物理地址与虚拟地址

关于地址空间

一个比较抽象的概念,我们可以把它想象成一个长数组,每个数组元素占一个字节;而这个数组长度将由地址空间长度决定,如32位的地址空间的大小将为2^32个字节(4GB),而64位的地址空间大小为2^64个字节(理论上可看作是无限大)。

这也就解析了,在32的操作系统中,为什么最大只能支持4GB的有效内存。也就是,超出了4GB后的内存都不会在寻址范围内,因此变成了剩余的内存资源。


物理地址(Physical Address Space)

物理地址空间是实在的存在于计算机中的一个实体,在每一台计算机中保持唯一独立性。我们可以称它为物理内存;如在32位的机器上,物理空间的大小理论上可以达到2^32字节(4GB),但如果实际装在的内存不够4GB,那么有效的物理地址将会更少。例如,安装了1GB的内存的机器上,真正有用的物理地址空间应该是0x00000000~0x3FFFFFFF,余下部分在实际寻址中无效。


虚拟地址(Virtual Address Space)

虚拟地址并不真实存在于计算机中。每个进程都分配有自己的虚拟空间,而且只能访问自己被分配使用的空间。理论上,虚拟空间受物理内存大小的限制,如给有4GB内存,那么虚拟地址空间的地址范围就应该是0x00000000~0xFFFFFFFF(4GB)。

为什么每个进程的虚拟地址空间范围都可以这么大呢,这涉及到地址的映射机制;程序实际运行时,系统会先将虚拟地址映射到物理地址中的范围。

另外一个概念:虚拟内存。虚拟内存是内存中的一片连续地址空间。在物理存储位置上的意义,不一定就是指物理内存,可能也是在硬盘上开辟的一篇地址空间。


(xiaomo的读书笔记,参考自"程序员的自我修养",转载请保留原作出处,谢谢)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值