高手请进:32位虚拟地址经过页机制转换以后得到的物理地址是32位吗?那物理内存又是怎样编址的呢?
时间:2011-11-03
来源:互联网
每个进程都拥有4G(2的32次方)的虚拟地址空间。在实际编程过程中,指针中存放的地址也都是32位的线性地址(虚拟地址),经过页目录、页表等分页机制变换以后可以得到真正的物理地址,而这个物理地址也是32位的。对于32位的CPU来说没有任何问题,因为它的地址总线是32位的,寻址空间也就是2的32次方(4G)。那么我的问题就出来了:CPU的寻址空间是2的32次方(4G),程序要访问的物理地址(线性地址经过分页机制变换以后得到地址)也是32位的,这种情况下的内存应该至少是4G才对(再次强调:经过页机制转换以后得到的物理地址是32位的),而平时我们自己用的计算机才一两个G(比如说就1个G),那么这时候的内存是怎么编址的呢(1G内存只要30根地址线就够了,相应的的物理地址位数只要30位就行了,用不了32位啊)?还是另一种原因啊:线性地址经过页机制变换以后得到的不是真正的物理地址,这个地址任然是一个虚拟地址?......困惑中......请高手给予解答,万分感激!问题真能够解决的话,分值可以追加的
作者: houyongqian88 发布时间: 2011-11-03
线性地址空间与物理地址空间大小不一致,这才导致产生了分页机制。
当需要使用不在物理内存中的页面时,会产生请求调页,然后操作系统负责内存页的换入换出。
当线性地址转换到物理地址,而物理地址不足4G(比如1G),操作系统可以给你分配内存。
你在线性地址空间得到了需要的内存,而物理内存上通过换页机制也可以满足。
(假如你想使用3G开始的1页地址空间,操作系统会把任意空闲的1页内存给你使用)
要是物理内存有4G,那么我觉得分页机制可以取消了,线性地址直接映射给物理地址。
当需要使用不在物理内存中的页面时,会产生请求调页,然后操作系统负责内存页的换入换出。
当线性地址转换到物理地址,而物理地址不足4G(比如1G),操作系统可以给你分配内存。
你在线性地址空间得到了需要的内存,而物理内存上通过换页机制也可以满足。
(假如你想使用3G开始的1页地址空间,操作系统会把任意空闲的1页内存给你使用)
要是物理内存有4G,那么我觉得分页机制可以取消了,线性地址直接映射给物理地址。
作者: renq_654321 发布时间: 2011-11-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28