- 了解nachos系统调用的原理:
1. 要实现nachos的系统调用,首先查看syscall.h当中声明的系统调用函数
可以发现Nachos已经为我们在syscall.h中声明好了这些系统调用函数。
2. 观察Start.s中的汇编代码,定义了系统调用函数的实现
我们可以观察到Halt函数的实现是将系统调用类型(type)SC_Halt放入了2号寄存器中,然后执行syscall。
3. 在Mipssim.cc中可以找到syscall的执行方式
可以看到这里调用了RaiseException异常处理函数
4. Jump到这个异常处理函数,可以发现将SyscallException传入了ExceptionHandler函数中。
5. exception.cc中ExceptionHandler函数