page fault与segment fault
page fault和segment fault产生的流程
Segment Fault
- 访问了不存在的内存地址或访问权限不足的内存地址
- 操作系统会立即结束程序并向操作系统报告错误
Page Fault
- 程序在访问虚拟地址时
- 请求访问未加载到内存的虚拟地址映射未建立,或者未加载到内存
- 操作系统会将请求的虚拟地址映射到物理地址,读取数据并交给程序
一张表说明segment fault和page fault的区别
特征 | Segment Fault | Page Fault |
---|---|---|
类型 | 内存访问错误 | 虚拟内存错误 |
原因 | 访问了不存在的内存地址或访问权限不足的内存地址 | 请求访问未加载到内存的虚拟地址,映射未建立,或者未加载到内存 |
产生时机 | 程序执行期间 | 程序在访问虚拟地址时 |
处理方式 | 操作系统会立即结束程序并向操作系统报告错误 | 操作系统会将请求的虚拟地址映射到物理地址,读取数据并交给程序 |