OK6410A 开发板 (八) 31 linux-5.11 OK6410A 感知linux的内存管理

发布者:自由漫步最新更新时间:2022-09-13 来源: csdn关键字:OK6410A  开发板  11  内存管理 手机看文章 扫描二维码
随时随地手机看文章

linux 内存管理 , 我们感知三类内存管理

系统内存管理 A

内核线程内存管理 A

用户进程内存管理

内核态 A

用户态 B


这几种应该分为两类 , A B

A 类共用一个内存(虚拟和物理)

B 类每个进程有一个内存(虚拟和物理)



另外,我们知道在硬件上 内存是 物理内存

但在 linux 里面, 内存 除了物理内存 还包括 swap空间代表的空间(这里是将硬盘当作内存) // 可以从 free 命令 分析出来


A

系统内存管理的感知

系统启动的时候,会打印如下的信息

[09:52:32]Memory: 243936K/262144K available (5120K kernel code, 6569K rwdata, 736K rodata, 1024K init, 2134K bss, 18208K reserved, 0K cma-reserved)

[09:52:32]Virtual kernel memory layout:

[09:52:32]    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

[09:52:32]    DTCM    : 0xfffe8000 - 0xfffec000   (  16 kB)

[09:52:32]    ITCM    : 0xfffe0000 - 0xfffe4000   (  16 kB)

[09:52:32]    fixmap  : 0xffc80000 - 0xfff00000   (2560 kB)

[09:52:32]    vmalloc : 0xd0800000 - 0xff800000   ( 752 MB)

[09:52:32]    lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)

[09:52:32]      .text : 0xc0008000 - 0xc0600000   (6112 kB)

[09:52:32]      .init : 0xc0700000 - 0xc0800000   (1024 kB)

[09:52:32]      .data : 0xc0800000 - 0xc0e6a548   (6570 kB)

[09:52:32]       .bss : 0xc0e6a548 - 0xc108013c   (2135 kB)


内核线程内存管理的感知

对于一个进程来说

.code .rodata .data .bss .stack .heap 是我们要关心的

一个内核线程的 这些段 在哪里

.code : c000 8000 以上 (例如 c0111314处为sys_fork)

.stack  : 对应的 thread_info + 8KB 下面


用户进程内核态内存管理的感知

对于一个进程来说

.code .rodata .data .bss .stack .heap 是我们要关心的

一个内核线程的 这些段 在哪里

.code : c000 8000 以上 (例如 c0111314处为sys_fork)

.stack  : 对应的 thread_info + 8KB 下面


用户进程用户态内存管理的感知

对于一个进程来说

.code .rodata .data .bss .stack .heap 是我们要关心的

一个用户进程用户态的 这些段 在哪里

.code : 0001 0000 左右

.stack : bece 0000 左右


知识点应该是 VMA


free 命令 的分析

xxxx@lenovo:~$ free -m // MB 来查看 物理内存的使用情况,不涉及虚拟内存

              total        used        free      shared  buff/cache   available

Mem:           7884        1842        3759         140        2282        5601

Swap:          3905           0        3905


可以看到, 总的内存分为两块

1. 物理内存  Mem

2. swap硬盘 Swap


Mem 上分类

1.total : linux运行时可管理的物理内存的总大小,(经内核参数 mem=xxx,和 memblock_reserve 后) 的 内存大小,不等于 实际物理内存的总大小 

// 为什么使用的物理内存被分为三部分 used shared buff/cache

2.used  : 已经使用的大小,经 alloc_page  申请的大小

3.shared : 共享内存大小,主要用于进程间通信 // TODO , 对应什么函数

4.buff/cache : buff即buffers,用来给块设备做缓存。cache即page cache,用来给打开的文件做缓存。

// 当内存有盈余时,内核会尽可能夺得使用内存作为cache(page cache),文件缓存页面会加入文件类型的LRU链表中

// 当内存紧张时,文件缓存页面会

// 1.被丢弃

// 2.被修改的文件缓存会被回写到存储设备中,与块设备同步之后便可释放出物理内存

5.free : 未被分配的物理内存大小 // 什么是未被分配,什么是已被分配 ? shared 和 buff/cache 是 已被分配吗?

// free = total - used - buff/cache

// shared 不属于 被 使用的内存码???

6.available : 当内存短缺时,系统可以回收 buff/cache 中的 可回收部分

// 大小 为 free + buff/cache - “buff/cache中的不可回收部分”


Swap上分类

1.total : 应该是swap分区的大小

2.used : 应该是实际物理内存 置换到 swap分区的大小 , 当 此值大于0,表示内存紧张

3.free : free = total - used

关键字:OK6410A  开发板  11  内存管理 引用地址:OK6410A 开发板 (八) 31 linux-5.11 OK6410A 感知linux的内存管理

上一篇:OK6410A 开发板 (八) 32 linux-5.11 OK6410A 从内存角度简略分析整个启动过程
下一篇:OK6410A 开发板 (八) 30 linux-5.11 OK6410A 进程相关的寄存器

推荐阅读最新更新时间:2024-11-06 14:45

11是一面镜子 照亮家电业的荣耀与黑暗
双11不只是一场促销,还成为一面照亮中国家电业的镜子。让不同家电企业的荣誉 和成 就,黑暗与短板,毫无保留地展现在社会和消费者面前,真正开启一场“拼实力、拼真功”的战役。   没有意外。2017年的双11大促再次告捷,短短一上午京东、天猫等平台的成交量便突破1000亿,并向1500亿、1800亿冲击。不断刷新的成交量、交易额,以及越来越多消费者的参与,再次向整个社会表明:短期内可以取代双11大促地位的购物节,还没有出现。   毫无悬念。 电视 、 空调 、 洗衣机 等三类大家电,再次占据今年双11大促成交额前五强中的三席,海尔、美的、TCL、格力、奥克斯等巨头全线引爆。表明家电在双11大促中处的地位,已经相当稳固。而市场消费者和家
[家用电子]
家电卖场提前备战“双11” 线上延伸到线下
    “双11”又将到来,在经历过去年的电商大战后,“双11”已从线上延伸到线下,成为整个零售业的狂欢季。昨日,家电卖场苏宁和国美分别发布了各自的“双11“销售战略。     昨日,苏宁对外宣布将在11月8日到11月11日为期四天四夜时间举办“第一届O2O购物节”,将联合其线下门店与线上商城苏宁易购共同作战。 苏宁此次通过店内二维码、移动客户端以及苏宁易购直销区等手段,将线上渠道搬到了实体门店,除了传统的3C家电产品外,还将出售百货、母婴、食品等商品。 另外,本周刚刚收购了PPTV的苏宁还将尝试性地采用互动视频购物模式。     11月1日至11月11日期间,上海国美将开启线上比价、线下下单的促销活动,在体验真机的过程中
[家用电子]
STC89C52单片机驱动CC1101无线模块的发送C语言程序
#include reg52.h #include intrins.h #define INT8U unsigned char #define INT16 Uunsigned int #define WRITE_BURST 0x40//连续写入 #define READ_SINGLE 0x80//读 #define READ_BURST 0xC0//连续读 #define BYTES_IN_RXFIFO 0x7F //接收缓冲区的有效字节数 #define CRC_OK 0x80 //CRC校验通过位标志 //**************CC1100接口********* sbit GDO0=P3^3;
[单片机]
LM3S1138入门7,PLL(锁相环)设置系统时钟
程序运行后,先设置LDO电压为2.75V,要点是:必须首先设置LDO电压为2.75V,切记!然后配置PLL输出为50MHz,作为系统时钟。 采用PLL后,CPU运行速度大大加快,但功耗也会明显增大。因此在低功耗应用场合要限制PLL的使用。 主函数: #include LED.H #include hw_types.h #include hw_memmap.h #include hw_sysctl.h #include hw_gpio.h #include sysctl.h #include gpio.h // 将较长的标识符定义成较短的形式 #define SysCtlPeriEnable S
[单片机]
2011年苹果获676项专利 全球第39
    据IFI Claims Patent Services网站报道,2011年获得专利最多的公司是IBM,共有6180项专利,三星排名第二,获得了4894项专利。排名第三的是佳能公司,去年获得了2821项专利。松下和东芝分别以2559项和2483项专利排在第四和第五位。     苹果去年一共获得了676项专利,排名第39。RIM去年获得了663项专利,排名第40。LG获得643项专利,排名第41。诺基亚获得了585项专利,排名第47。     微软去年获得了2311项专利,排名第6。惠普获得了1308项专利,排名第14。英特尔获得了1244项专利,排名第16。美国最大电信运营商AT&T获得了721项专利,排名第35。 苹果在
[手机便携]
2013年8月全球半导体销售同比增6.4%,2011年3月来最高增长率
     美国半导体工业学会(SIA)于当地时间2013年10月4日发布的一份报告显示(英文发布资料),8月份全球半导体销售额为258.7亿美元(3个月的移动平均值,以下相同),同比增加6.4%。        6.4%是仅次于2011年3月的8.6%的高增长率。另外,环比增长率为1.3%(参阅本站报道),连续6个月实现环比增长。连续2个月4个地区全部实现环比增长。           全球及各地区的单月半导体销售额(3个月移动平均值)走势(数据提供:SIA及WSTS,制图:Tech-On!)。 (点击放大)         全球半导体单月销售额(3个月移动平均值)和同比增长率的走势,数据由SIA和WSTS提供。 (点击放
[手机便携]
SSD暴跌成白菜价 美国、日本两大闪存巨头谋划合并:避免11年前惨剧再演
5月17日消息,最近一两年来,闪存芯片价格都在下滑,导致SSD价格已经低至1TB 200元的白菜价,也让几大闪存厂商的利润暴跌,最新传闻美国的西数与日本的铠侠谋划合并。 西数前几年收购了闪迪公司才进军了闪存芯片市场,铠侠的前身则是东芝半导体,后者不仅是NAND闪存的发明人,也是跟闪迪合资研发、生产的,只不过之前两家是独立运营,现在合并的话颇有几分合久必分、分久必合的味道。 根据此前的消息,西数与铠侠制定的合并计划,在此次合并后的实体,将由铠侠持有43%的股份,西数持有37%的股份,剩余的股份由两家公司的现有股东持有。 双方为什么会合并?当前闪存、SSD价格暴跌是诱因,导致双方的营收及利润暴跌,但两家整合的根本原因是担心随
[半导体设计/制造]
总投资4.5亿元!肖家湾储能电站将于11月下旬全容量并网
工作人员对储能设备进行调试。肖家湾储能电站即将实现全容量并网。21日,记者从肖家湾储能电站项目建设现场了解到,该项目正快马加鞭施工中,预计今年11月下旬实现全容量并网。由湘乡市吉电邦锦新能源有限公司投资建设的肖家湾储能电站项目位于湘乡经开区,是我市今 ...
[新能源]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved