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

内核常见问题汇总

1. mmap如何将物理地址返回给用户空间

可以从mmap实现原理来进行解答

mmap函数是一种内存映射文件的方法,他可以将一个文件或设备映射到进程的地址空间中,使得进程可以像访问内存一样访问文件或设备。

mmap分为:文件映射和匿名映射,该函数的主要工作是创建VMA

VMA是指虚拟内存区域,是Linux内核中用于管理进程虚拟内存的数据结构,每个进程有一个VMA链表,用于描述进程的虚拟地址空间的不用区域。

VMA可以表示进程代码段、数据段、堆、栈等不同的内存区域。

VMA用于指导虚拟内存映射物理内存,没有VMA指导无法完成虚拟地址和物理地址映射

过程中如果存在进程访问尚未建立映射关系的虚拟内存时,这是会触发Linux缺页中断,并根据页面的状态来分配物理页面并建立映射关系。

通过mmap创建VMA后,我们使用VMA内存映射区虚拟地址,但此时虚拟地址不能映射物理地址,原因是映射表还没有动态创建出来,

缺页中断发生后,中断处理函数会完成虚拟地址到物理地址隔各个映射表创建。映射表创建完成后,还需要PTE的创建。

PTE的创建涉及到文件映射,文件映射可以将文件的内容映射到进程的内存空间。

文件映射PTE指向文件的物理内存页,文件映射需要VMA指向对应的文件,由文件来生成物理页。</

http://www.dtcms.com/a/163522.html

相关文章:

  • 计算机基础:二进制基础14,二进制加法
  • 某建筑石料用灰岩矿自动化监测
  • 海思vio模块学习
  • Android第五次面试总结之网络篇(修)
  • 【AI】OrinNX上安装RIVA-2.19.0,实现文本转语音
  • 第14讲:科研图表的导出与排版艺术——高质量 PDF、TIFF 输出与投稿规范全攻略!
  • 水安题库:水利水电安全员ABC精选练习题
  • MySQL多表操作
  • HCIE证书失效?续证流程与影响全解析
  • 一个SciPy图像处理案例的全过程
  • 小结:GRE VPN;IPSec
  • 【论文阅读/复现】RT-DETR的网络结构/训练/推理/验证/导出模型
  • 抱佛脚之学SSMSpringMVC数据绑定
  • JavaScript 作用域全面总结
  • Spring MVC 中解决中文乱码问题
  • 近期实践总结
  • 通信设备制造数字化转型中的创新模式与实践探索
  • 某高端制造企业知识中枢升级,基于悦数 Graph RAG 打造工业级「故障排查最强大脑」
  • 基于STM32、HAL库的DS28E25安全验证及加密芯片驱动程序设计
  • 有什么好用的工地全过程管理erp软件系统?如何推进数字化转型?
  • 去哪儿旅行 Bella Pre 分析
  • 53.[前端开发-JS实战框架应用]Day04-Bootstrap入门到项目实战
  • antd+react实现html图片预览效果
  • 面试手撕——快速排序
  • LLamaFactory如何在Windows系统下部署安装训练(保姆级教程)
  • 4.27比赛总结
  • 【滑动窗口】最大连续1的个数|将x减到0的最小操作数
  • OceanBase数据库-学习笔记5-用户
  • 大模型微调之LLaMA-Factory 系列教程大纲
  • ClickHouse副本集群