虚拟地址空间和编译模式

所谓虚拟地址空间,就是程序可以使用的虚拟地址的有效范围。虚拟地址空间大小由操作系统决定,也受编译模式的影响

CPU的数据处理能力

cpu处理数据的能力由数据总线和主频决定

  • 数据总线:用于cpu和内存之间传输数据,决定了cpu单次处理数据的能力
  • 主频:决定了cpu单位时间内的数据处理次数

编译模式

32位编译模式:
一个地址4字节,共32位。理论上能访问的虚拟内存大小为2^23 bytes即4G
对于32位的编译模式,不管实际物理内存有多大,程序能够访问的有效虚拟地址范围为 0 ~ 0XFFFFFFFF 即虚拟地址空间大小为4GB

64位编译模式:
理论上能够访问的虚拟内存空间大小为 2^64。,就目前的技术来讲,不但物理内存不可能达到这么大,CPU的寻址能力也没有这么大,实现64位长的虚拟地址只会增加系统的复杂度和地址转换的成本,带不来任何好处。
所以 Windows 和 Linux 都对虚拟地址进行了限制,仅使用虚拟地址的低48位(6个字节),总的虚拟地址空间大小为 2^48 = 256TB。

发布了93 篇原创文章 · 获赞 11 · 访问量 5865

猜你喜欢

转载自blog.csdn.net/weixin_44997886/article/details/104519068
今日推荐