请问关于CPU的虚拟地址空间和虚拟内存
书上说386的虚拟地址空间是64TB。但是我怀疑,虚拟内存真的能超过4GB吗?〔这里认为CPU地址线是32根,不考虑36根地址线的pentium pro〕
关于为windows系统设置虚拟内存,理论上,虚拟内存设置为100GB比设置为10GB效果更好吗?或者说,如果有了4GB的物理内存,是不是就再也不会用到硬盘充当虚拟内存了?
64TB只是48位*地址空间*?而*虚拟内存*最大值应该还是4GB?
高手表走,谢谢先
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
不能这样算,你还是先看看其保护模式再说
老大,我说的就是保护模式啊。
我是自学的,看书怎么也看不明白,很痛苦,才来麻烦你们的,谢谢
我在网上查了,有两种说法,一种是说,可以用硬盘把虚拟内存扩展到64TB;另一种说法是,最大4GB,扩展到4GB以上,超出的部分不会起作用的,如果有4GB的内存,OS就不可能用到硬盘作为虚拟内存了。
到底哪种说法是对的啊,跪求!!
32位的cpu只能寻址4G空间,如果要高于4G就需要通过physical address extension(简称PAE)技术实现,扩展为36个地址位来支持64G内存
参考:
http://hi.baidu.com/odawn/blog/item/012767318c490110eac4af6f.html
谢谢楼上,我说的是虚拟内存,不是物理内存啊,
64TB意味着什么呢?是不是理论上可以用64TB的硬盘把虚拟内存扩大到64TB?我在网上查了,有两种相反的说法啊
是的,你可以这么理解
不过究竟可以用多少虚拟内存还取决于操作系统
64TB只是CPU最大的寻址上限,很多操作系统可能达不到这个上限
另外,至于你的有4GB物理内存还需不需要虚拟内存的问题,这一方面取决于应用程序,比如大型的图像处理程序,用10GB内存都不是奇怪的事情。另外也取决于操作系统的换页机制,有的操作系统即便是你有100G的物理内存,也会把物理内存的页面不定期的换到swap里面去
64TB只是CPU最大的寻址上限
是理论值
有4GB物理内存,基本用不倒虚拟内存
谢谢。
是不是如果真的有64TB虚拟内存,就意味着CPU必须有48根地址线,才能完全利用虚拟内存?
是不是对于32位CPU〔比如有36根地址线的pentium pro〕,如果没有开启PAE技术,那么,在已经有了4GB物理内存的情况下,用硬盘充当虚拟内存没有效果,因为OS不能寻址4GB以上的内存?是这样吗?
可以看看X86的页表结构
x86的页表结构决定了它最大可以表达多大的物理地址空间
平坦内存模式和32位线性地址空间决定了进程的4G空间限制
CPU管脚决定了使用“内存条”的限制
OS的文件系统决定了交换分区的限制
四者其实没什么必然关系