操作系统和MMU是这样配合的:
1.操作系统在初始化或分配、释放内存时会执行一些指令在物理内存中填写页表,然后用指令
设置MMU,告诉MMU页表在物理内存中的什么位置。...CPU在产生中断或异常时不仅会跳转到中断或异常服务程序,还会自动切换模式,从用户模式切换到特权模式,因此从中断或异常服务程序可以跳转到内核代码中执行。...段错误是这样产生的:
1.用户程序要访问的一个VA,经MMU检查无权访问。
2.MMU产生一个异常,CPU从用户模式切换到特权模式,跳转到内核代码中执行异常服务程序。...3.内核把这个异常解释为段错误,把引发异常的进程终止掉。...int指令中的立即数0x80(0~255)是一个参数,在异常处理程序中要根据这个参数决定如何处理,在Linux内核中int$0x80这种异常称为系统调用(SystemCall)。