当前位置: 首页 > news >正文

内存管理篇-22 高端内存和低端内存的分界线

        这节课讲的主是为了区分低端内存和高端内存的是如何区分的?内核空间的划分是可以配置的。为了查看现象,通过qemu设置物理内存为不同情况。

        结论:线性映射区的大小,和page_offset(内核起始地址0x80000000还是0xc0000000)和物理内存有关系。如果配置3:1,3GB+760MB为线性映射区。如果2:2划分,2+1760MB为线性映射区。高端内存没啥用,都没人用了,64位地址的虚拟空间特别大,再大的物理内存也能直接映射。

重点是啥:观察配置内核和用户空间的比例为不同值,设置ddr的大小为不同值的情况下。

        当ddr为256MB时,256MB都是低端内存。vmalloc区为啥是1776MB?这里基本上就把2GB占住了。此时没有高端内存的概念了。剩下的1776MB虚拟内存即使访问了,本质上还是被映射到了低端内存。

        当ddr为512MB时,512还是全部都是低端内存。但是vmalloc区变成了1520MB。基本上就把2GB占住。

        当ddr为1GB时,低端内存为1024GB,vmalloc区别变成1008MB

注意:vmalloc的结束地址是固定的。0xff80 0000.但是起始地址是动态变化的。vmalloc区最小是240MB。vmalloc_min = vmalloc_end - 240<<20 - vmalloc_offset(这里是8MB的隔离空间)


http://www.mrgr.cn/news/20566.html

相关文章:

  • Newman生成测试报告排版混乱
  • Spring 源码解读:手动实现BeanFactory的加载与管理
  • C++的四种规范的类型转换
  • 动手学深度学习(pytorch)学习记录24-填充和步幅[学习记录]
  • java开发简历详解
  • 2024国赛数学建模C题思路模型
  • 设计模式之装饰器模式:让对象功能扩展更优雅的艺术
  • 为什么这么多物联网项目都失败了?
  • Python
  • OpenCV 旋转矩形边界
  • HTTP Cookie 和 session
  • 2024 年全国大学生数学建模竞赛(国赛)浅析
  • 利用高德API获取整个城市的公交路线并可视化(四)
  • 数据链路层认识以太网
  • 使用C语言实现字符推箱子游戏
  • C++学习笔记(7)
  • 用Java实现一个简易的炸金花小游戏
  • 一站式开发平台ModelArtls
  • WS2812B驱动
  • jmeter之计数器