当前位置:  技术问答>linux和unix

内存管理的几点疑惑,请指教。

    来源: 互联网  发布时间:2016-05-05

    本文导语:  都说linux内核占用0xc0000000以上的空间,即3G~4G处,而且0xc0000000处开始是物理内存的影射,比如物理内存大小是64M,那么0xc0000000到0xc0000000+64M处是影射的物理内存,而且内核中确实也有全局变量high_memory来保存物理内存...

都说linux内核占用0xc0000000以上的空间,即3G~4G处,而且0xc0000000处开始是物理内存的影射,比如物理内存大小是64M,那么0xc0000000到0xc0000000+64M处是影射的物理内存,而且内核中确实也有全局变量high_memory来保存物理内存上限所对应的虚地址。那么有两个疑惑了:
(1)对于物理内存大于1G的怎么办?你一共才1G的虚地址空间,怎么影射超过1G的内存?
(2)对于booter中启动参数带mem=..的来说,high_memory包含保留内存吗?比如,物理内存大小是128M,启动的时候用选项mem=64M,那么high_memory为多少?

|
通过PAE,32bit的X86 CPU可以访问到64GB内存

》对于物理内存大于1G的怎么办?你一共才1G的虚地址空间,怎么影射超过1G的内存? 

准确的说应该是大于896MB的怎么办。
高于896MB的内存,Linux把它们作为高端内存,这些内存在kernel初始化时并没有映射到页表上。
Kernel是保留内核空间那1GB的高128MB用于临时映射这些高端内存,所以,如果要访问这些高端内存,你必须要将它们映射到那个保留128MB中。

 

|
对于 2) 因为你的物理内存才128M, 所以没有所谓的高端内存

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • linux下的内存管理方式
  • 有谁比较过glib和嵌入式系统的内存管理?哪个效率好?
  • linux内核分配内存,及管理?
  • linux内存管理虚拟地址 逻辑地址 交换分区(swp)
  • Objective-C 内存管理 MAZeroingWeakRef
  • linux,windows内存管理
  • linux 内存管理初级问题
  • 这里有人研究了Linux内存管理的slab层吗?
  • 页内存管理的缺点
  • 内存分配管理 jemalloc
  • C++内存管理库 Generic Memory Manager
  • linux 下可否管理malloc创建的内存?
  • 菜鸟请教有关共享内存管理的一个问题
  • 怎么在固定大小的内存里面做成一个类似于文件系统的缓存管理?
  • 【求助】unix下如何进行内存管理?
  • 一个关于Linux内存管理的问题
  • 请教一下关于linux内存管理的问题,100分(只能给100),:)~
  • 内存分页管理的问题
  • 怎么查看进程使用的内存,像windows下的任务管理器一样
  • C++ Vectors 成员 get_allocator():返回vector的内存分配器
  • 我的机器内存128 ,安装redhat9 后,可用内存很少了,如何节省内存呢?
  • C++ Vectors 成员 capacity():返回vector所能容纳的元素数量(在不重新分配内存的情况下)
  • 奇闻:Apache+Apache JServ 1.1.1+1G内存居然报内存不够,那位高友知道参数设置,把俺的1G内存都利用起来,感激不尽啊
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍
  • 怎样读取指定内存地址处指定长度的内存数据???(
  • C/C++内存池实现介绍及基本要求
  • 请教一个关于内存分配的问题(系统和DMA共享一块物理内存空间)
  • linux下free命令显示的内存使用情况分析
  • Solaris下如何获得物理内存和虚拟内存的大小?
  • c/c++内存堆分配和栈分配理解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3