毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> linux >> 正文

linux内存管理问题

更新时间:2013-1-21:  来源:毕业论文

一, 书上说vmalloc()在3G+896M以上线性地址空间分配连续虚拟内存,3G到3G+896M线性地址被永久固定映射到了0--896M物理地址.

问题:如果计算机的物理内存小于896M,比如512M,那么vmalloc()是不是就没有用处了?


二,ULK(understanding the linux kernel)书中说:
.从0到3G的线性地址空间,无论用户态还是内核态都可以访问寻址.

.从3G到4G的线性地址空间,只有内核态可以访问寻址.

问题:既然内核态可以访问0到4G的所有线性地址,那么所谓的大于896M的高端物理内存,内核不就可以通过0到3G的线性地址来映射访问吗?新年祝福网页 

问题:既然内核态可以访问0到4G的所有线性地址,那么所谓的大于896M的高端物理内存,内核不就可以通过0到3G的线性地址来映射访问吗?

内核0~3G的线性地址是虚拟的地址并不在内存真正的物理内存地址。

3G到3G+896M线性地址被永久固定映射到了0--896M物理地址. 3G+896M是虚拟地址。0~896M的物理地址。如果内核开启处理器MMU的话,虚拟地址到物理地址是需要进行转化的。0~3G的虚拟地址转换时,转换为不确定的物理地址,3G+896转换为固定的地址。
>>问题:如果计算机的物理内存小于896M,比如512M,那么vmalloc()是不是就没有用处了?
物理内存多大,与vmalloc()有关系吗?
vmalloc()在3G+896M~4G线性地址空间分配连续虚拟内存
3G~3G+896M线性地址被永久固定映射到了0~896M物理地址.

>>问题:既然内核态可以访问0到4G的所有线性地址,那么所谓的大于896M的高端物理内存,内核不就可以通过0到3G的线性地址来映射访问吗?
没有哪里说大于896M的高端物理内存映射到了0到3G的线性地址吧

对于用户程序来说,可见的是线性地址空间,线性地址到底映射到哪个物理内存地址,只有内核才知道
线性地址到物理内存的映射是内核和MMU单元做的事

一, 书上说vmalloc()在3G+896M以上线性地址空间分配连续虚拟内存,3G到3G+896M线性地址被永久固定映射到了0--896M物理地址.祝福网页 

问题:如果计算机的物理内存小于896M,比如512M,那么vmalloc()是不是就没有用处了?

[1] [2] 下一页

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.com 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。