问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

深入解决Linux内存管理之page fault处理

发布网友 发布时间:2024-10-20 12:01

我来回答

1个回答

热心网友 时间:2024-11-03 14:35

内核实现只是在进程的地址空间建立好了vma区域,并没有实际的虚拟地址到物理地址的映射操作。这部分就是在Page Fault异常错误处理中实现的。Linux内核中的Page Fault异常处理涉及诸多细节,malloc/mmap的物理内存映射只是它的一个子集功能。


下图概括了出现Page Fault的情况:


开始深入分析Page Fault的处理过程。在深入理解Linux内核中Page Fault异常处理之前,推荐以下文章供参考:



    字节终面:CPU 是如何读写内存的?
    全网最牛Linux内核分析--Intel CPU体系结构
    一文让你读懂Linux五大模块内核源码,内核整体架构设计(超详细)
    嵌入式前景真的好吗?那有点悬!
    一文教你如何使用GDB+Qemu调试Linux内核
    Linux内核必读五本书籍(强烈推荐)
    全网独一无二Linux内核Makefle系统文件详解(一)(纯文字代码)
    带你深度了解Linux内核架构和工作原理!
    如何读懂GDB底层实现原理(从这几点入手~)
    一文彻底理解Memory barrier(内存屏障)
    一篇文带你搞懂,虚拟内存、内存分页、分段、段页式内存管理(超详细)

接下来,我们来详细介绍Arm64的Page Fault异常处理。在Arm64架构中,Page Fault的处理依赖于体系结构。通常,取指令或访问数据时,需要将虚拟地址转换成物理地址。若转换不成功,将导致异常。异常处理过程主要在arch/arm64/kernel/entry.S中进行。


在处理Page Fault时,代码会调用do_mem_abort函数,这个函数比较简单,主要作用是根据传入的错误状态获取对应的处理方法。错误状态和处理函数的对应关系如下:



    do_translation_fault
    do_page_fault

其中,do_page_fault函数为核心异常处理函数,与体系结构紧密相关。handle_mm_fault函数为通用异常处理函数,所有处理器结构最终都会调用到这个函数。


handle_mm_fault用于处理用户空间的页错误异常,流程如下图所示。



    do_fault
    do_anonymous_page
    do_swap_page
    do_wp_page

do_fault函数专门处理文件页异常,包括以下三种情况;do_anonymous_page函数用于处理匿名页的缺页异常;do_swap_page函数处理访问Swap页面出错的情况;do_wp_page函数处理写时复制(copy on write)的异常。


关键的复制工作由wp_page_copy函数完成。在深入理解Linux内核的Page Fault处理机制之后,希望您能更深入地掌握Linux内存管理的精髓。了解更多相关信息,可访问首页 - 内核技术中文网 - 构建全国最权威的内核技术交流分享论坛。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
房贷和消费贷利率差别不大,但是还款金额差别挺大,都是怎么计算的... ...11月18号提现1500元、,11月25号还款1515,请问我还需要还 总金额是1515元,手续费是3.33元,怎么算的 三个小杯,两个大杯的容量一共是880毫升,小杯的容量是大杯的四分之一... ...毫升,小杯的容量是大杯的4分之1,小杯和大杯的容量各是多少毫升?(用... 怎么能知道局域网有没有人开P2P之类的限速软件,如果被限速,那么开360... 用P2P限速对方会知道吗 怎样判断是否有人使用局域网限速软件如果你在局域网内共享上网? 什么软件能查到其它电脑是否对网络限速?(例如其它电脑使用了P2P这种... 怎么让电脑版微信在线 为什么我们网吧的无盘客户机重起后万象就锁定桌面了? 网众无盘 开着启动服务器 客户机蓝屏 求救求救。。网众无盘卡机。。。 - 网众无盘客户机高级缓存设置 网众无盘 客户机网关设置 网众无盘蓝屏提示0x00000024是怎么回事 悬赏100分!!网众无盘系统中的多配置问题!!高手帮忙解决一下!!_百度... 为什么重低音 野牦牛的体重是多少 办公室都有哪些岗位 和平精英火力对决2.0上线时间介绍 无盘怎么做下面的客户机系统 无盘网吧系统具体是怎么设置的? 姓名配对免费姓史的和姓什么相克 网众无盘系统,客户机换了板。启动登陆界面提示未连接服务器!如何... 网吧 无盘,用的是网众,服务器添加MACB地址后,客户机还是启动不了,_百 ... 往届生高考报名需要哪些资料 网众无盘,简单,实用,稳定,高速,安全.我想开网吧,自已怎么装??? 网众无盘的GZ万能包具体怎么安装 大神求解 空调为什么会发出嗡嗡的响声 ...脊柱里打了二十三个钢钉,两个拉杆,康复期间应该怎样锻炼 强直性脊柱炎康复锻炼操 大连春田留庄花田墅周边环境怎么样?生活便利吗? 当期收益率当期收益率的特征 当期收益率的范围 当期收益率当期收益率的定义 当期收益率和到期收益率的区别? ...我的儿子是2010年阴历6月21日17点出生,帮忙看看孩子五行缺什么?谢 ... 外贸怎样做好 你好,我想做女包生意。看你说的有外贸包包,想请教你。在哪里拿货?货... 护士节活动开场白 求炸鸡sloga 就是广告语,一经录用,有丰厚奖励! 卖炸鸡的广告词怎么写啊 铜官窑瓷窑简介 醴陵釉下彩瓷历史传承 ...背,头皮,还有脖子,脸有时候会痒。晚上睡觉也一样。 我只要一激动或者运动的时候头皮和上半身就会很痒,我是不是得了什么怪 ... 天气突然变热且空气干燥时,头皮就会发痒,其他部位的皮肤偶尔也会痒... 身体发痒是怎么回事。。有时候天气一热,身上,头皮就会发痒。。而且在... ...或者感到尴尬.或者突然一热的时候.头皮和脸上.或者身上.就会像针 ...
  • 焦点

最新推荐

猜你喜欢

热门推荐