cdoop 发表于 2009-7-25 09:51

。。。这个发现真的很惊人。。。。。

估计楼下马上也发现,W700出现在火星。

chinaboy 发表于 2009-7-26 17:05

上来冒个泡,顺便普及一下内存的理论知识。
32位系统,内存可寻址范围是2的32次方,即4G。
内存划分为内核空间和用户空间两部分。
内核空间包括系统模块和驱动程序。
用户空间就是指应用程序了。
其中:
0-1G为内核空间使用。
1G-4G为用户空间使用。
以上是指虚拟地址,系统维护一个地址映射表,把虚拟地址映射到物理地址,进行寻址。
换句话说,即使您只有512M物理内存,应用程序仍然可使用3G内存,不足部分系统将分配磁盘空间作为物理内存使用,这就是传说中的虚拟内存。
即使用您有4G的物理内存,应用程序所能利用的也仅3G而已。

关于ramdisk。
我不大清楚RAMDISK的运作方式,如果是运行在用户层,那么与事无补,能利用的仍然不能超过3G。
如果运行在内核层,那是可以利用剩下的内核空间的,由于用户层不能直接访问内核空间,用户层数据必须通过某个接口读写,比起直接操作用户空间效率要低。

关于虚拟内存。
LINUX称之为交换分区,其实这种叫法更贴切。因为它不仅仅是物理内存不足时的应急措施。
系统的内存管理程序维护这一区域,当物理内存被某个程序分配的内存长期霸占,且数据没变化时,这部分数据会被移动到虚拟内存,腾出的这部分物理内存被活跃的程序占用。这些数据可能包括不良程序僵死的数据,比如某个程序有内存泄漏。因此,虚拟内存是十分有必要存在的。
页: 1 [2]
查看完整版本: 【原创】突然间发现原来XP对4G内存是会自动利用的!