博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OK6410A 开发板 (八) 38 linux-5.11 OK6410A 为什么需要这么多内存管理器
阅读量:4285 次
发布时间:2019-05-27

本文共 637 字,大约阅读时间需要 2 分钟。

最后 用 memblock 不行吗?跳过 memblock 直接设置 buddy 不行吗memblock 和 buddy 的区别为什么 是 buddy 是 内存管理器 以及 其他管理器的基础为什么 buddy 建立了还要 建立 slab 和 vmalloc ?这几个内存管理器的特点是什么???
  • 第三阶段的消费者
第三阶段建立的是 buddyalloc_pages 申请到的都是 物理内存 连续的 页物理地址连续,虚拟地址肯定连续但至少一个页及以上问题:	1.buddy提供的api 最少可以申请的内存大小是一个页,不能再小	2.alloc_pages 如果申请2个及以上的页,只有 当 存在物理内存连续的2个页时,才能正确返回;否则,返回 0
  • 第四阶段的消费者
用于解决 buddy 第1个问题解决方案:	将 buddy 看成 内存批发的 大代理商(buddy内存分配器),构建一个小代理商(slab内存分配器)	slba 从 buddy 批发内存,然后将 内存分成 更小的块(A)(小于1页) ,并进行管理	用户 从 slab  批发 A其他:	因为没有解决第二个问题,只要申请成功(不管多大),肯定是下面的状态:		物理地址是连续的,虚拟地址是连续的
  • 第五阶段的消费者
用于解决 buddy 第2个问题解决方案:	不是在buddy基础上建立一个分配器	而是封装一层	这多的一层主要是 使用 页表 将 不连续的物理内存 映射到 虚拟内核地址空间 中,使之看起来是连续的.

转载地址:http://kjigi.baihongyu.com/

你可能感兴趣的文章
《图像处理实例》 之 操作规则的圆
查看>>
一些误差的概念
查看>>
凸优化&非凸优化问题
查看>>
Basler和Matrox的配置及调试
查看>>
QT编写TCP入门+简单的实际项目(附源程序)
查看>>
VS2015和QTcreator冲突解决办法
查看>>
mmdet阅读笔记
查看>>
从零开始实现SSD目标检测(pytorch)(一)
查看>>
AutoAssign源码分析
查看>>
Rethinking Training from Scratch for Object Detection
查看>>
机器学习常用库简介
查看>>
人眼定位识别
查看>>
解决TensorFlow程序无限制占用GPU
查看>>
SSD检测几个小细节
查看>>
Kalman实际应用总结
查看>>
linux+eclipse+lua
查看>>
Linux下常见问题的解决方法
查看>>
C语言学习笔记
查看>>
Linux下设计并发网络程序
查看>>
android 多渠道打包---使用python 3.3.2
查看>>