下午看Linux内核设计与实现,看到进程上下文和中断上下文又懵逼了,感觉似懂非懂。既然都要保存cpu状态,那为什么在系统调用的时候就是''代进程执行''?
我之前的理解是:虽然都保存了cpu状态但保存的寄存器的种类和数量不同,中断的时候要保存更多的cpu状态且保存在pcb(task_struct)中,中断恢复的时候和普通进程切换一样从pcb恢复上下文;但是系统调用就只相当于函数调用并切换成内核态,只是保存了一小部分寄存器和有了更多的权限。