摘要:
在实际需要某个虚拟内存区的数据之前,虚拟和物理内存之间的关联是不会建立的,我们就默认程序不着急用,先去处理认为重要的事情。如果要访问一个页面这而它却不在物理内存中,处理器自动引发一个缺页异常,内核必须处理此异常。这时需要考虑的几个问题是:1、出错地址有什么特点?2、出错的地址有相对应的现有映射吗?3、要怎样获取该区域的数据? 看过代码(还有网上关于这块的流程图)之后感觉实在太复杂了。处理缺页异常的函数是void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code)下面就沿着这个函数开始看内核是怎么处理的. 阅读全文