首页 > 系统相关 >linux 内存管理 --- kmalloc 和 vmalloc

linux 内存管理 --- kmalloc 和 vmalloc

时间:2023-07-19 22:33:07浏览次数:49  
标签:kmalloc 申请 --- 物理地址 内存 分配器 linux vmalloc

kmalloc

kmalloc会根据申请的内存大小来决定来决定使用块分配器(slab/slub/slob)或页分配器进行内存分配(buddy),只能分配几个固定大小的内存,申请值不在这些固定值之内时,会按向上对齐的原则,分配最接近申请值的内存块。

static __always_inline void *kmalloc(size_t size, gfp_t flags)

 

flags 可以指定从哪个物理内存区域申请内存,不指定就是低端内存,也可以指定高端内存等

kmalloc最大可分配内存大小:等于伙伴系统最大能申请的单块最大内存

kmalloc申请的物理地址是连续的

kmalloc如果申请高端物理内存,使用的虚拟地址是 PKMAP_BASE ~ PAGE_OFFSET-1

 

vmalloc

vmalloc申请的物理地址不一定是连续的,所以可以申请非常大的物理内存

 

标签:kmalloc,申请,---,物理地址,内存,分配器,linux,vmalloc
From: https://www.cnblogs.com/god-of-death/p/17566958.html

相关文章

  • 01-工作流 workflow
    title:01-工作流workflowdate:2023-7-1922:06:43tags:-Flowable状态机解决流程问题工作流:就是一个可以处理复杂情况的状态机。例如,员工请假这个流程:首先员工提交请假申请,假设有项目经理进行审批,审批有两种结果:通过或者拒绝。实现上面这个需求:创建一张请假表,表中......
  • Reactjs学习-props, state, render之间的关系以及虚拟Dom
    本篇是关于React的基础-渲染以及虚拟domprops,state, render之间的关系当组件的state或者props发生改变时,render函数重新执行当父组件的render函数执行时,子组件的render函数也会重新执行2.虚拟Dom产生背景:react是视图层的框架,数据加JSX模板构成我们的视图,数据会发生改变......
  • postgresql-备份恢复
    1、逻辑备份恢复pg_dump/pg_restore命令备份恢复对数据库或表备份恢复##备份指定的数据库test$pg_dump-Upostgres-W-h192.168.3.122-p1921test>/pgdata/dumpbak/test.sql##备份指定库中的某个表t1$pg_dump-Upostgres-W-h192.168.3.122-p1921test......
  • self-attention
    Selfattention考虑了整个sequence的资讯【transfermer中重要的架构是self-attention】 解决sequence2sequence的问题,考虑前后文 Isawasaw第一个saw对应输出动词 第二个输出名词 如何计算相关性【attentionscore】输入的两个向量乘两个矩阵Q=query   k=key......
  • 【pandas小技巧】--读取多个文件
    日常分析数据时,只有单一数据文件的情况其实很少见,更多的情况是,我们从同一个数据来源定期或不定期的采集了很多数据文件;或者从不同的数据源采集多种不同格式的数据文件。在这样的情况下,分析数据之前,需要将不同的数据集合并起来。合并数据一般有两个维度,一是同构的数据集合并后行数......
  • 2023夏季集训D1-贪心二分
    2023夏季集训D1贪心二分0x00前言24OIFXJ大佬来给我们讲课OrzOrz.讲课好难TAT.0x10贪心0x11经典贪心写了BestCowLineG/S和田忌赛马一位小伙从同学那里要来了一份BestCow代码Debug但没有发现代码没有输入,这是他思路3小时后发生的hack.田忌赛马太......
  • 函数式编程part2-Lambda表达式
    2.1概述Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。2.2核心原则可推导可省略2.3基本格式(参数列表)->{代码}......
  • Docker--了解及基础使用篇
    Docker--了解及基础使用篇Docker架构:Docker包括三个基本概念:镜像(Image):Docker镜像(Image),就相当于是一个root文件系统。比如官方镜像ubuntu:16.04就包含了完整的一套Ubuntu16.04最小系统的root文件系统。容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对......
  • DP: 0-1背包,完全背包
    见:『一文搞懂完全背包问题』从0-1背包到完全背包,逐层深入+推导-零钱兑换-力扣(LeetCode)0-1背包:dp[i][w]=minmax(dp[i-1][w],dp[i-1][w-wi]+vi)完全背包dp[i][w]=minmax(dp[i-1][w],dp[i][w-wi]+vi)即完全背包可以是重复选。另外,通常可以简化2D数组到1D,因为......
  • 「学习笔记」FHQ-treap
    FHQ-treap,即无旋treap,又称分裂合并treap,支持维护序列,可持久化等特性。FHQ-treap有两个核心操作,分裂与合并。通过这两个操作,在很多情况下可以比旋转treap等方便的实现一些操作。FHQ-treap与其他的平衡树相比,他最明显的优点是:它好写!!!,想象一下,在考场上,你用较短的时间写出FH......