一切皆是映射:浅谈操作系统内核的缺页异常(Page Fault)
2023-09-14 09:07:23 时间
浅谈操作系统内核的缺页异常(Page Fault)
缺页中断就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。在这个时候,被内存映射的文件实际上成了一个分页交换文件。
页缺失(英语:Page fault,又名硬错误、硬中断、分页错误、寻页缺失、缺页中断、页故障等),指的是当软件试图访问已映射在虚拟地址空间中,但是并未被加载在物理内存中的一个分页时,由中央处理器的内存管理单元所发出的中断。
简单讲,就是:内核接住了这个异常,并处理了这个异常(Page Fault Handler)。
![](https://img-blog.csdnimg.cn/img_convert/8e7b029a590060b043f099d26efffb25.png)
通常情况下,用于处理此中断的程序是操作系统的一部分。如果操作系统判断此次访问是有效的,那么操作系统会尝试将相关的分页从硬盘上的虚拟内存文件中调入内存。而如果访问是不被允许的,那么操作系统通常会结束相关的进程。
虽然其名为“页缺失”错误,但实际上这并不一定是一种错误。而且这一机制对于利用虚拟内存来增加程序可用内存空间的操作系统(比如Microsoft Windows和各种类Unix系统)中都是常见且有必要的。
术
相关文章
- [watchdog]内核失败的重启方案
- u-boot向linux内核传递启动参数
- Linux-0.0.1内核阅读连载笔记-2013.08.20
- 数据库内核月报 - 2015 / 09-MySQL · 捉虫动态 · 建表过程中crash造成重建表失败
- ThreadX视频教程第2期:通俗易懂的介绍Cortex-M内核的OS特性,双堆栈,非特权级,PendSV,SVC,Systick等,争取人人都可以掌握
- M内核迎来大BOSS,ARM发布Cortex-M55配NPU Ethos-U55 ,带来无与伦比的性能提升
- 介绍一种在ABAP内核态进行内表高效拷贝的方法,和对应的Java和JavaScript版本的伪实现
- 编译内核的make命令
- 鸿蒙轻内核源码分析:异常钩子模块系统中断异常,如何转储异常信息
- 从五大结构体,带你掌握鸿蒙轻内核动态内存Dynamic Memory
- 鸿蒙轻内核M核的故障管家:Fault异常处理
- 解读鸿蒙轻内核的监控器:异常钩子函数
- 【Linux 内核 内存管理】物理分配页 ⑥ ( get_page_from_freelist 快速路径调用函数源码分析 | 检查内存区域水线 | 判定节点回收 | 判定回收距离 | 回收分配页 )
- 【Linux 内核】进程管理 ( 内核线程概念 | 内核线程、普通进程、用户线程 | 内核线程与普通进程区别 | 内核线程主要用途 | 内核线程创建函数 kernel_thread 源码 )
- Linux内核Thermal框架详解五、Thermal Core(4)
- RK3399平台开发系列讲解(内核设备树篇)3.12、SPI设备树配置说明
- 聊聊Netty那些事儿之从内核角度看IO模型
- Linux内核Thermal框架详解五、Thermal Core(4)
- Linux dmesg 命令 - 打印内核环形缓冲区
- 【OSTEP】多道程序和时分共享 | 虚拟地址空间 | 用户栈vs内核栈 | 进程结构: struct thread | 虚拟vs物理地址空间 | 地址转换方案
- Android内核开发:从源码树中删除出厂的app应用