能力值:
( LV2,RANK:10 )
|
-
-
2 楼
同是菜鸟,第一个问题应该是“是”,第二个4g的地址空间指的是可以访问连续的4294967296个字节,换成二进制就是4G了,取值范围为0x00000000---0xFFFFFFFF,因为目前的机器都是32位的,而32位用来存储一个指针的话最多就是这几个值了。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
另外补充 4GB,B是字节,也就是有4G个字节那么大。 4G =2的32次方= 4294967296
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
要是 4G那么大 的话 ! 不分页 直接访问物理内存 物理内存没有那么大啊!!
要是分页的话 运行20 几个进程 那么需要80G 那么大虚拟内存吧???????????
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
楼主的意思是不是不明白:如果运行20几个进程,80G的内存太大了,不可思议?
解释一下:虚拟内存,为什么叫虚拟内存呢?因为他不是真实的内存。这里的“不是真正的内存”不光指有些内存映射到分页文件中(reserved),不是真正的内存;还指虚拟内存中的大部分是是free状态的,即既没有对应的pagefile,也没有对应的物理内存。
理解了虚拟内存以后,还要明白,虚拟内存地址并不是index(如果把虚拟内存看成4G个元素的数组的话),而是用来查询具体的物理内存的。寻址方法是:高10位用来指向页目录入口,中间10位指向页表入口,低12位是页中的偏移量(一个页有2^12=4096字节)。
如果楼主还不明白我说的什么,建议搜索一下:cpu的32位保护模式。网上好多相关的文章。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
不分页的话逻辑地址转成线性地址,线性地址就是物理地址
分页的话逻辑地址转线性地址,然后经过分页机制转成对应物理地址
|
|
|