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

RK3568平台 内存的基本概念

一.Linux的Page Cache

page cache,又称pcache,其中文名称为页高速缓冲存储器,简称页高缓。page cache的大小为一页,通常为4K。在linux读写文件时,它用于缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问。

二.Linux内存泄漏 

内存泄漏一般指的是堆内存的泄漏。堆内存是指程序从堆中分配的、大小任意的(内存块的大小可以在程序运行期决定)、使用完后必须显示的释放的内存。应用程序一般使用malloc、realloc、new 等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用 free 或 delete 释放该内存块。否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。

三.Linux内核MMU

MMU是 MemoryManagementUnit 的缩写即,内存管理单元. 针对各种CPU, MMU是个可选的配件. MMU负责的是虚拟地址与物理地址的转换. 提供硬件机制的内存访问授权。

四.应用程序的内存布局 

代码段:对应着程序中的代码(函数),代码段在linux中又叫文本段(.text)。

数据段:显式初始化为非0的全局变量,显式初始化为非0的static局部变量。

bss段存:显式初始化为0或者未显式初始化的全局变量,显式初始化为0或未显式初始化的static局部变量。

堆:C语言中什么样变量存在堆内存中?C语言不会自动向堆中存放东西,堆的操作是程序员自己手工操作的。程序员根据需求自己判断要不要使用堆内存,用的时候自己申请,自己使用,完了自己释放。

文件映射区:文件映射区就是进程打开了文件后,将这个文件的内容从硬盘读到进程的文件映射区,以后就直接在内存中操作这个文件,读写完了后在保存时再将内存中的文件写到硬盘中去

栈:栈内存区,局部变量分配在栈上;函数调用传参过程也会用到栈,递归函数运行也在栈上

内核映射区:内核映射区就是将操作系统内核程序映射到这个区域了。

五.从内核角度看内存管理

 

http://www.lryc.cn/news/220621.html

相关文章:

  • mysql联合索引和最左匹配问题。
  • 全球发布|首个AI视角下的生态系统架构解读—《生态系统架构--人工智能时代从业者的新思维》重磅亮相!
  • 解决torch.hub.load加载网络模型异常
  • 如何获取HuggingFace的Access Token;如何获取HuggingFace的API Key
  • How to resolve jre-openjdk and jre-openjdk-headless conflicts?
  • setTimeout和setImmediate以及process.nextTick的区别?
  • read 方法为什么返回 int 类型
  • 在二维矩阵/数组中查找元素 Leetcode74, Leetcode240
  • MS35657步进电机驱动器可兼容DRV8824
  • SQL语句性能优化
  • 线性代数之 伪逆矩阵
  • 【3D图像分割】基于Pytorch的VNet 3D 图像分割5(改写数据流篇)
  • 【漏洞复现】Apache_Shiro_1.2.4_反序列化漏洞(CVE-2016-4437)
  • Mac连接linux的办法(自带终端和iterm2)
  • js调整table表格上下相邻元素顺序
  • 基于ruoyi框架项目-部署到服务器上
  • Docker 持久化存储和数据共享_Volume
  • 万宾科技智能井盖监测仪器助力建设数字化城市
  • 第十一章《搞懂算法:聚类是怎么回事》笔记
  • 给定n个点或一个凸边形,求其最小外接矩形,可视化
  • 蓝桥杯每日一题2023.11.6
  • V-REP和Python的联合仿真
  • WPF布局控件之DockPanel布局
  • 【实战Flask API项目指南】之二 Flask基础知识
  • Linux 编译链接那些事儿(02)C++链接库std::__cxx11::basic_string和std::__1::basic_string链接问题总结
  • 按键精灵中的UI界面操作
  • dpdk 程序如何配置网卡收发包队列描述符配置?
  • 二蛋赠书七期:《云原生数据中台:架构、方法论与实践》
  • 计算机毕设 基于大数据的服务器数据分析与可视化系统 -python 可视化 大数据
  • 初识rust