操作系统-内存管理-地址基础知识

计算机存储单位之间的关系

位 bit (Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。

字节 byte:8个二进制位为一个字节(B),即1B = 8bit,最常用的单位。

计算机存储单位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB来表示,它们之间的关系是:

1B (Byte) = 8b(bit )

1KB (Kilobyte ) =2^10B =1024B

1MB (Megabyte ) =2^10KB =1024KB

1GB (Gigabyte ) =2^10MB =1024MB

1TB (Trillionbyte) =2^10GB =1024GB

1PB(Petabyte ) =2^10TB =1024TB

1EB(Exabyte ) =2^10PB =1024PB

1ZB (Zettabyte ) =2^10EB = 1024 EB

1YB (Yottabyte ) = 2^10ZB =1024 ZB

1BB (Brontobyte ) = 2^10YB =1024 YB

也就是说 1GB 等于 2 的 30 次方的Byte

问题

为什么32位机器对应的虚拟内存最大只能到 4G 呢, 这是如何算出来的?

过程推算

假如给你只有三位的地址空间,那么你能用这个三位的地址空间表示多大空间的内存呢,也就是三位里面,每位有两种结果,0或者1 ,总共 8 种结果(2的3次方),也就是说 32 位那么范围就是0到32个1 ,总共是 4GB 的内存大小

 2^32B=2^(2+10+10+10)B=2^2*(2^10*2^10*2^10)B=4GB ( 由上面就可以知道 1GB = 2的30次方B )

延伸

假如存储体积来说 , 1个格子只能放0和1 , 分两部分 ,一部分是地址,一部分是储存空间
地址:32个格子
储存空间:4GB个格子
32个格子可以用来给 4GB 存储体积排编地址编号 , 那么地址长什么样呢 ? 0或者1是二进制, 要写很长, 不方便 ,我们一般用16进制来表示,

0x100000000 (1后面8个0)

操作系统分配的虚拟地址一般都是以 0x08048000开始的 ,现在再来看这个地址就非常熟悉了 ,这绝对是 32位系统哇 !! 位数和我们刚才推算的一样

参考资料

posted @ 2023-01-05 10:11  float123  阅读(193)  评论(0编辑  收藏  举报