xv6 rev6页面错误处理程序

时间:2012-09-18 09:18:43

标签: c unix assembly operating-system x86

我在xv6-rev6源代码中找不到页面错误处理程序。是我错过了它还是根本没有页面错误处理程序?我在Traps.h中确实找到了“#define T_PGFLT 14 //页面错误”(工作表上的第2817行),但除了第2817行外,我找不到它。

1 个答案:

答案 0 :(得分:2)

异常处理从vector14()开始,它在vector.S中定义,由this Perl script生成。

vector14()然后将控制转移到alltraps(),这是所有进一步的异常和系统调用处理的公共入口点。

alltraps()最后调用一个C处理程序trap(),它分析事件并调度适当的处理程序(系统调用,I / O,异常)。

trap()调用pgfault_handler()来处理页面错误。